问题出在 /web-static/dynaform/class.js 这个JS下面,它做了前端判别,如果 host 不正确就会强制跳转到 tplogin.cn,然而这个域名在公网是没有解析的,因此没法直接穿透。

解决方法就是修改这个 JS 文件,在其 PageFunc 函数下有一句this.gDomainDNS=“tplogin.cn”,将变量内容替换为自己的域名就行。

这个修改直接借助 Nginx 改写一下就行:

server {
    listen 8081;  #frpc 转发此端口
    server_name demo.com;

    location / {
        proxy_pass http://192.168.1.1; # 路由器的IP
        sub_filter 'tplogin.cn' 'demo.com';
        sub_filter_types *;
    }
}