我们公司是在一台 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 1
v2ray 能满足到这个要求,但是配置也挺复杂的,需要一定的学习能力。
|
3
darknoll 2021-05-20 11:40:55 +08:00 1
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 2021-05-20 12:35:02 +08:00 via iPhone
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
lymith 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 最好
|