Frp+go Mmproxy实现透明代理式内网穿透

frp+go-mmproxy 实现透明代理的内网穿透 事前声明:该方法只在 Linux 系统有效,并且需要 linux 内核 2.6.28 或更高版本 参考: [Feature Request] Make client IP accessible to upstream by spoofing source IP · 议题 #4184 · fatedier/frp mmproxy - Creative Linux routing to preserve client IP addresses in L7 proxies frp 是一个常用的内网穿透软件,支持多种协议,可以让 NAT 环境下的服务暴露到公网指定端口,以穿透 sshd 为例,配置 frpc.toml: [[proxies]] name= "ssh" type="tcp" localIP = "127.0.0.1" localPort = 22 remotePort = 23456 然后用 frps 对应公网的 ip 和端口访问:在内网机的 var/log/auth.log 中查看登录记录: Accepted publickey for fsj2009yx from 127.0.0.1 port 38866 ssh2: 可以看到经过 frpc 代理转发后,源客户端 IP 被隐藏了,变成配置中的 localIP 地址 ...

March 19, 2026 · 2 min · 320 words · Me

如何把无公网的求生之路 2 服务器借助 VPS 转发注册到 Steam Master 列表中

如何把无公网的求生之路 2 服务器借助 VPS 转发注册到 steam master 列表中 先说在前,这个方法解决的是:一台无公网的游戏服务器,单靠 frp 等软件内网穿透不能进入匹配列表和路人联机的问题,因为 l4d2server 的注册方式是向 steam master server 发送注册请求和心跳包,上报服务器 IP 和端口。下面的方法需要至少具备以下条件: 有一台 gameserver 和一台公网 VPS 操作系统均为 Linux 发行版 了解 wireguard 的基本使用 可能只对很少人感兴趣,因为目前大部分服务器都会加上 -nomaster 隐藏来防止扫段 DDOS,只留给部分亲友联机,或者确实有人有这方面需求但是有自己的方法(反正我没搜到相关帖子) 背景 Master Server Query Protocol - Valve Developer Community 详细写了关于 gameserver 的注册流程和请求响应报文格式,开始我的想法就是反向代理然后手动构建注册请求,结果在 Discussion 末尾有人提到 16 年之后游戏注册和查询使用了内部加密协议,之后的查询只能用 steam webAPI。如果尝试在 gameserver 启动后的控制台输入 heartbeat 同时抓包, 会出现几个使用 TLS 加密的 packet。经过一番搜索,最终只得出来两个可能的方法:1.逆向报文/server 端 2.让公网 VPS IP 作为默认网关。 第一种方法显然对我来说不可能(有这技术我还折腾这吗)随后知道了 Linux network namespace 机制的存在,它可以让 srcds_run 在虚拟的网络空间运行,并且把 VPS 当出口网关,同时不影响我服务器上其他正常的业务。 ...

March 19, 2026 · 3 min · 604 words · Me