|
楼主 |
发表于 2022-3-23 15:12
|
显示全部楼层
有一个论坛的大大帮忙回复了,但我看不太懂,坛友们帮忙诠释下:
本帖最后由 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
复制代码 |
|