Windows和Linux自带的工具进行端口转发
场景描述
有下列两台服务器 其中服务器可以被外网访问
- 数据库: 192.168.2.231:3306
- 服务器: 192.168.2.230
现在需要开发电脑需要直连数据库(排除工具可以用SSH通道)
Linux下端口转发
使用SSH转发端口
- 将192.168.2.231的3306端口转发到192.168.2.230的3306端口
1
ssh -NTf -R 3306:192.168.2.231:3306 root@localhost
- 默认本地监听的是
127.0.0.1
如果要服务器监听0.0.0.0
请 开启网关端口 - AutoSSH
- 由于 SSH 会自动断开 需要重连 很麻烦 所以使用 AutoSSH 命令和 SSH 一样 但是断开会自动连接
1
autossh -M 8081 -fCNR 3306:192.168.2.231:3306 root@localhost
- 由于 SSH 会自动断开 需要重连 很麻烦 所以使用 AutoSSH 命令和 SSH 一样 但是断开会自动连接
使用iptables转发
- 开启内核转发 修改
/etc/sysctl.conf
1
2# 找到下面的值并将0改成1
net.ipv4.ip_forward = 1 - 执行
sysctl –p
生效 - 执行
iptables
命令转发1
2iptables -t nat -A PREROUTING -p tcp -d 192.168.2.230 --dport 3306 -j DNAT --to-destination 192.168.2.231:3306
iptables -t nat -A POSTROUTING -p tcp -s 192.168.2.231 --sport 3306 -j SNAT --to-source 192.168.2.230 - 执行
service iptables save
保存转发规则
Windows下端口转发
- 使用
netsh
完成转发1
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=3306 connectaddress=192.168.2.231 connectport=3306