比如在我程序看来是对 ip 地址 A 创建了个 tcp 连接,但实际上是对 ip 地址 B 创建了个 tcp 连接,这应该怎么实现? Linux C 有例子吗?
1
wellsc 2018-01-17 17:26:49 +08:00
NGINX
|
2
ThirdFlame 2018-01-17 17:28:11 +08:00
端口映射?
|
3
janxin 2018-01-17 17:28:18 +08:00
|
4
clino 2018-01-17 17:30:51 +08:00
除了端口映射, socks 代理是不是也是做到这种效果?
|
5
FreeEx 2018-01-17 17:49:27 +08:00
iptables nat
|
8
pimin 2018-01-17 18:23:52 +08:00 via Android
端口转发应该是效率最高的
|
9
wangking 2018-01-17 18:24:53 +08:00
ssh 和 iptables 都是有转发功能
|
10
lianxiaoyi 2018-01-17 18:27:21 +08:00
apt-get install rinetd
vim /etc/rinetd.conf 0.0.0.0 3706 xxx.xxx.xxx.xxx 3306 :wq rinetd /etc/rinetd.conf |
12
likuku 2018-01-17 18:33:29 +08:00
haproxy 的 tcp 连接模式
|
13
conn4575 2018-01-17 19:36:57 +08:00 via Android
haproxy+1
|
14
zjsxwc OP 看了代码原来就是借助 epoll 代理转发,不断的 recv 与 send 数据:
https://github.com/rssnsj/portfwd/blob/master/src/tcpfwd.c#L433 https://github.com/rssnsj/portfwd/blob/master/src/tcpfwd.c#L444 |
15
LGA1150 2018-01-17 20:33:40 +08:00
在本机上执行
iptables -t nat -I OUTPUT -p tcp -d 地址 A --dport 端口 -j DNAT --to 地址 B |
16
xiaoz 2018-01-17 20:55:13 +08:00
iptables 即可: https://faq.xiaoz.me/archives/72.html
|
17
wwqgtxx 2018-01-17 21:33:44 +08:00 via iPhone 1
|
18
eaglexiang 2018-01-18 03:31:47 +08:00 1
|