前言
直接使用frp内网穿透有个问题就是访问家里群晖记录会是内网的ip,如果开启了群晖的多次尝试登录失败自动封锁ip,这会导致群晖封锁的ip不是真正尝试访问者的ip,而是部署frpc的内网ip,进而导致自己都无法登录了,接下来就分享一个内网群晖可以直接获取到访问者真实ip方法
开始
第一步:
启用群晖的SSH功能,连接后sudo -i切换到root执行下面两行
将源自环回的所有流量路由回环回
ip rule add from 127.0.0.1/8 iif lo table 123
ip route add local 0.0.0.0/0 dev lo table 123
第二步
用docker下载 wuai1024/go-mmproxy 并启动
注意这里需要修改网络和命令,我用群晖面板的默认5001端口做演示
命令意思是用 go-mmproxy 把5002端口转发到5001
如果改了端口或者是穿透ssh端口自行修改对应的端口
-l 0.0.0.0:5002 -4 127.0.0.1:5001
第三步
修改frpc配置,在穿透群晖的配置增加 transport.proxyProtocolVersion = "v2"
# frpc.toml
[[proxies]]
name = "群晖web"
type = "tcp"
# localPort要改成docker配置的5002了
localPort = 5002
localIP = "192.168.1.10"
remotePort = 6000
# 增加这一行
transport.proxyProtocolVersion = "v2"
改好重启一下frpc
到此整个步骤就都完成了
结束
接下来就测试一下
在外网打开群晖,然后查看连接可以看到已经是本机的真实ip了
开启群晖自带的封锁ip功能,故意输错几次密码也能正确封锁了
测试完成
如果是其他linux系统还可以配合fail2ban进行封禁,这里就不过多赘述了
参考:
https://github.com/fatedier/frp/issues/4692
https://hub.docker.com/r/wuai1024/go-mmproxy/
https://github.com/path-network/go-mmproxy
今天的分享就结束了,各位大佬感觉有用的话还请毫不吝啬的赏个鸡腿。
最后感谢各位大佬的观看!