我们公司是在一台 DMZ 主机,linux 系统上用 iptables 做端口转发,但是 iptables 转发后就看不到客户端的 IP 了,被 iptables 做了源地址转换。nginx 和 haproxy 能看到客户端 IP,但是配置比较麻烦,有时需要批量端口转发,比如 80-90 批量转发到 80-90 端口,没有 iptables 方便。 能看到客户端 IP,配置方便,支持批量端口转发,有这样的软件不
1 DaGongRen001 2021-05-20 11:24:21 +08:00 可以使用 frp |
2 brader 2021-05-20 11:27:07 +08:00 ![]() v2ray 能满足到这个要求,但是配置也挺复杂的,需要一定的学习能力。 |
3 darknoll 2021-05-20 11:40:55 +08:00 ![]() gost |
![]() | 4 defunct9 2021-05-20 11:45:09 +08:00 go-tcp-proxy_1.0.2_linux_amd64 |
![]() | 5 hulala1021 2021-05-20 11:49:27 +08:00 可以安装个 nginx 图形化管理工具来配置 nginx |
![]() | 6 KyonLi 2021-05-20 11:49:53 +08:00 |
![]() | 7 moxuanyuan 2021-05-20 12:12:24 +08:00 @hulala1021 #5 - **nginx-proxy-manager** [https://github.com/jc21/nginx-proxy-manager]( https://github.com/jc21/nginx-proxy-manager) - **nginxWebUI** [https://github.com/cym1102/nginxWebUI]( https://github.com/cym1102/nginxWebUI) - **nginx-ui** [https://github.com/schenkd/nginx-ui]( https://github.com/schenkd/nginx-ui) 除了这三个,还有吗? |
![]() | 9 EPr2hh6LADQWqRVH 2021-05-20 12:17:39 +08:00 只能说你 DMZ 主机的 iptables 配置得不对,错误地进行了 SNAT,好好改一下,入方向包不要覆盖源地址 |
![]() | 10 icepie 2021-05-20 12:28:09 +08:00 caddy |
![]() | 11 Ehco1996 2021-05-20 12:29:13 +08:00 via iPhone |
![]() | 12 zhoudaiyu PRO Socat 是不是 |
![]() | 13 gaozihang 2021-05-20 12:45:23 +08:00 rinetd |
![]() | 14 lixiang2017 2021-05-20 12:50:12 +08:00 via Android firewalld |
15 oxromantic 2021-05-20 12:51:44 +08:00 先搞清楚你要转发什么协议还需要知道源地址,如果 HTTP 协议 nginx 之类反向代理都支持,修改 x-forward 如果你要转发 FTP 协议,那么协议本身不支持源地址表达,就没法做成你要的效果,除非转发前自己把源地址存到共享空间 |
![]() | 16 d0m2o08 2021-05-20 13:03:35 +08:00 我都是用 nc 没测试过能不能看到源地址 nc -l -k -p 80 -c "nc 1.2.3.4 80" |
![]() | 17 henices 2021-05-20 13:13:19 +08:00 socat |
18 sleepm 2021-05-20 13:31:24 +08:00 via Android traefik |
![]() | 19 lchqfnu 2021-05-20 14:11:43 +08:00 rinetd |
![]() | 20 NaVient 2021-05-20 14:28:07 +08:00 rinetd |
![]() | 21 hanyceZ 2021-05-20 15:01:27 +08:00 你也是啊,肖战 |
![]() | 22 micookie 2021-05-20 15:11:05 +08:00 rinetd |
![]() | 23 xuanbg 2021-05-20 15:19:13 +08:00 nginx |
24 whitelee8080 2021-05-20 15:20:00 +08:00 rinetd |
25 CallMeReznov 2021-05-20 15:23:58 +08:00 最近用了一款 rinetd,可以很简单的转发端口,但不知道为什么一旦转发的数据量起来后就会出现断流的情况,没仔细研究,解决了问题就给关了 |
26 kiolygenius 2021-05-20 16:00:15 +08:00 gost +1 |
![]() | 27 weizhen199 2021-05-20 16:02:38 +08:00 tinyPortMapper,比 scop 还轻量化 udp2raw tunnel 大佬的作品 |
28 UserDMM 2021-05-20 16:05:18 +08:00 名字都叫错了,我是冠希..... |
![]() | 29 abersheeran 2021-05-20 16:09:03 +08:00 @UserDMM 冠希哥,听说你在 LA 的高桥遇到一群混混被打劫了三百块? |
![]() | 30 zliea 2021-05-20 16:52:38 +08:00 rinetd+1 |
![]() | 31 SenLief 2021-05-20 21:46:48 +08:00 socat? |
![]() | 32 princeofwales 2021-05-21 08:33:09 +08:00 nginx 转发端口哪里复杂了 |
33 motianya211314 2021-05-21 10:40:04 +08:00 rinetd |
34 salmon5 2021-05-21 10:57:27 +08:00 iptables >socat >nginx >rinetd,注意 rinetd 有伪造的: https://github.com/boutell/rinetd/issues/8 |
35 salmon5 2021-05-21 10:57:48 +08:00 rinetd 谨慎使用 |
36 CoderLife 2021-05-21 15:05:28 +08:00 rinetd +2 |
37 XQUX9al72490iGLh 2021-05-21 21:17:49 +08:00 c++手写一个吧 |
![]() | 38 SaigyoujiYuyuko 2021-05-22 15:44:06 +08:00 L7 的转发不保证源地址 除非 Proxy Protocol 没记错的话 frp 支持端口段转发+Proxy Protocol |
39 ducks 2021-05-24 20:46:28 +08:00 @DaGongRen001 单个配置域名太蛋疼了把 |
![]() | 40 lamesbond OP 感谢彦祖们的回复,试了 frp,得单独配置服务端和客户端,太麻烦弃了,gost 也是服务端客户端,rinetd 看到文章说不稳定,不敢用,找到 haproxy-wi 工具,官网一看要收费,算了,就用 nginx web 界面配置把,或者 lvs 。 这些工具都没法像 iptables 那样一条命令转发多个端口,比如 8000~8009 转发到 8000~8009,或许我该针对 nginx 或 lvs 写个批处理脚本? |
41 123zsr123 2021-05-29 16:57:35 +08:00 和目标服务器建一个 vpn 再用 iptables 只做 DNAT 就可以看到客户端地址了 |
42 wxlg1117 2021-06-20 19:10:54 +08:00 我试过 n 多端口转发,持久和量大算 goproxy 最好 |