centos 怎么转发请求到另一个 IP?

2019-04-13 11:55:53 +08:00
 rizon

firewall-cmd 以及 iptables 折腾了好久实在是没成功。

家里有个内网主机 A 和主机 B,主机 B 使用 zerotier 组了异地局域网,主机 A 不想安装 zerotier。
所以从外网的请求都会通过这个虚拟网卡发送的主机 B,希望主机 B 可以把请求转发给 A。
比如 ssh -p 23 root@HostB 实现可以 ssh 到主机 A

3703 次点击
所在节点    程序员
15 条回复
azh7138m
2019-04-13 12:05:18 +08:00
如果只是 forward 一个端口上 tcp 或者 udp 流量,我现在在用的方案是 https://github.com/rssnsj/portfwd
rizon
2019-04-13 12:07:16 +08:00
@azh7138m #1

最后换方案了。,。改用 frp 来穿透内网了,frp 的客户端可以绑定 ip 地址,间接实现了我的需求。不折腾了,类似,何必呢~开心就好~~~~
rizon
2019-04-13 12:09:40 +08:00
@azh7138m #1 你发的这个似乎很不错哈,我试试哈,谢哈~
bruce2000
2019-04-13 12:10:29 +08:00
haproxy
nginx
了解下
rizon
2019-04-13 12:12:26 +08:00
@bruce2000 #4 是种方案,但是感觉大材小用啊。我就想简单的转发一个请求~~


@azh7138m #1 centos 怎么安装。。。
azh7138m
2019-04-13 12:16:07 +08:00
@rizon 有 Makefile 的啊,这个要自己编译一下.....
cd src
make all
make install
然后就可以用 tcpfwd 和 udpfwd 了,需要自己包一个服务 :)
rizon
2019-04-13 12:21:08 +08:00
@azh7138m #1 感谢 很好用~~
binux
2019-04-13 12:24:05 +08:00
iptables -t nat -A PREROUTING -d $HOST_B/32 -i eth0 -p tcp -m tcp --dport 23 -j DNAT --to-destination $HOST_A
aaa5838769
2019-04-13 12:28:35 +08:00
防火墙规则就可以吧
liwufan
2019-04-13 12:45:40 +08:00
祖传 netcat 就行啊

mkfifo fifo
nc -lk 跳板机端口 <fifo | nc 目标机 ip a 目标机端口 >fifo
snoopygao
2019-04-13 15:00:02 +08:00
A 有外网地址的机器 111.111.111.111 ,假设用户名是 user_a
vi /etc/ssh/sshd_config
GatewayPorts yes
或 ssh 命令中加-g 参数

B 只有内网的机器,假设用户名是 user_b
设置密钥对
ssh-keygen -t rsa -b 4096
ssh-copy-id user_b@111.111.111.111
连接到 A 机,会自动启动 2022 端口
ssh -fCNR 2022:localhost:22 user@111.111.111.111

C
其它机器上执行
ssh user_b@111.111.111.111 -p 2022, 就能连到 B 机了

最后在 B 机上设置上 autossh 防止断开连接
snoopygao
2019-04-13 15:01:17 +08:00
@snoopygao 第二步
连接到 A 机,会自动启动 2022 端口
ssh -fCNR 2022:localhost:22 user_b@111.111.111.111
snoopygao
2019-04-13 15:02:17 +08:00
还是写错了 user_a
dorothyREN
2019-04-13 17:30:16 +08:00
iptables 直接转发不就行了
azh7138m
2019-05-30 00:57:06 +08:00
我重新实现了一下 portfwd https://github.com/muzea/portfwd
提供了 api 可以控制转发地址 :D

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/554750

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX