|
本帖最后由 dnomd343 于 2021-9-9 09:37 编辑
问题出在 /web-static/dynaform/class.js 这个JS下面,它做了前端判别,如果host不正确就会自动跳tplogin.cn,然而这个域名在公网是没有解析的,因此没法直接穿透。
解决方法就是修改这个JS文件,在其PageFunc函数下有一句this.gDomainDNS="tplogin.cn",将变量内容替换为自己的域名就行(我没试过公网IP+端口,不过原理差不多的)
这个修改直接借助Nginx改写一下就行,我的配置如下
- server {
- listen 80;
- server_name demo.scut.343.re;
- return 301 https://$server_name$request_uri;
- }
- server {
- listen 443 ssl;
- server_name demo.scut.343.re;
- ssl_certificate /etc/ssl/certs/scut.343.re/fullchain.pem;
- ssl_certificate_key /etc/ssl/certs/scut.343.re/privkey.pem;
- location / {
- proxy_pass http://192.168.2.99; # 这个是路由器的IP
- subs_filter 'tplogin.cn' 'demo.scut.343.re';
- subs_filter_types *;
- }
- }
复制代码
这样子直接访问https://demo.scut.343.re (这个域名只是示例,打不开的)就能正常打开内网管理页面了。我这里是用自己服务器穿透的,为了安全加了https(穿透前就上TLS层了),实际使用时不一定需要,你可以把反向代理给到本地任意一个端口,然后frp穿透这个端口就行了。
如果只要能用就行,下面这个配置就可以了(我没测试过)
- server {
- listen 8080;
- server_name demo.scut.343.re;
- location / {
- proxy_pass http://192.168.2.99; # 路由器的IP
- subs_filter 'tplogin.cn' 'demo.scut.343.re';
- subs_filter_types *;
- }
- }
复制代码
测试是否成功可以curl一下看看是否成功替换(Linux命令行)
- curl http://你的域名/web-static/dynaform/class.js | grep this.gDomainDNS
复制代码
|
评分
-
查看全部评分
|