如果局域網(wǎng)的網(wǎng)關(guān)為Linux服務(wù)器,我們要遠(yuǎn)程連接局域網(wǎng)內(nèi)部的Windows服務(wù)器遠(yuǎn)程桌面,該如何做呢?如果你有網(wǎng)關(guān)服務(wù)器的控制權(quán)限,那么就可以通過iptables的方式,實現(xiàn)跨局域網(wǎng)連接Windows遠(yuǎn)程桌面。 如果沒有網(wǎng)關(guān)服務(wù)器的控制權(quán)限,則需要通過內(nèi)網(wǎng)穿透工具(博文預(yù)告),如商用的TeamViewer,開源的n2n,或者QQ來實現(xiàn)跨局域網(wǎng)的遠(yuǎn)程桌面連接。當(dāng)然,通過iptables也可以配置訪問局域網(wǎng)內(nèi)的其他服務(wù),因此是開發(fā)人員的一項基礎(chǔ)技能。
操作過程主要分為三步:
- 開啟系統(tǒng)轉(zhuǎn)發(fā)
#edit /etc/sysctl.conf,去掉前面的注釋,或者添加此項
net.ipv4.ipv4_forward=1
- 添加PREROUTING規(guī)則
sudo iptables -t nat -I PREROUTING 1 -d ${linux_netgate_ips} -p tcp --dport 3389 -j DNAT --to-destination ${Windows_RDP_server_ip}:3389
- 添加POSTROUTING規(guī)則
sudo iptables -t nat -I POSTROUTING 1 -d ${Windows_RDP_server_ip} -p tcp --dport 3389 -j SNAT --to-source ${linux_netgate_ip}
此時,可以檢查是否可以實現(xiàn)連接。如果不能,檢查iptables 是否存在沖突規(guī)則,尤其是Forward鏈中是否允許轉(zhuǎn)發(fā)3389端口??梢酝ㄟ^插入相應(yīng)規(guī)則允許轉(zhuǎn)發(fā)。
sudo iptables -I FORWARD 1 -d ${Windows_RDP_server_ip} -p tcp --dport 3389 -j ACCEPT