0

我正在连接到 Windows 中的 VPN 以访问具有静态 IP 的远程计算机 (Linux)。从这台远程计算机上,我可以访问不同的机器(数据库、svn 等)。

我正在尝试设置我的远程计算机以从我的 Windows 机器访问数据库、svn 服务器等,因为远程连接上的工作非常慢。

所以我尝试了下一行/etc/rc.local,但它不起作用:

/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE

/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -d B1.B2.B3.B4 --dport 89 -j DNAT --to R1.R2.R3.R4:89
/sbin/iptables -A FORWARD -p tcp -d R1.R2.R3.R4 --dport 89 -j ACCEPT

B1.B2.B3.B4我的远程数据库IP在哪里,89是我们用来访问数据库的端口,R1.R2.R3.R4是我的远程机器IP。

这个配置有什么问题?

谢谢。

4

2 回答 2

1

确保ip_forward已启用:

echo 1 > /proc/sys/net/ipv4/ip_forward

此外,您需要确保 VPN 在连接时将 B1.B2.B3.B4 的路由推送到您的 Windows 机器;如果没有,您必须自己添加路线。

我认为 MASQUERADE 规则应该足够了,但是这样写:

iptables -t nat -A POSTROUTING -s WINDOWS_BOX_VPN_IP -j MASQUERADE

但是,如果您不想弄乱 iptables,您可以使用 SSH 来设置到远程服务的隧道,例如(您需要一些可以创建隧道的 Windows SSH 客户端,我正在举例说明如何从linux盒子):

ssh user@R1.R2.R3.R4 -L 8989:B1.B2.B3.B4:89

这将创建一个localhost:8989将连接转发到的隧道B1.B2.B3.B4:89(查找“本地端口转发”,http://chamibuddhika.wordpress.com/2012/03/21/ssh-tunnelling-explained/

于 2013-10-17T06:40:53.490 回答
0

最后,我发现Rinetd允许通过简单的配置进行 TCP 重定向。

根据我的问题,我必须添加的配置/etc/rinetd.conf是:

 R1.R2.R3.R4 89 B1.B2.B3.B4 89

然后我运行 Rinetd:

 /usr/sbin/rinetd

就这样。

如果要在每次重启电脑时自动运行,可以在文件中添加前面的命令/etc/rc.local

于 2013-10-21T10:50:49.857 回答