我可以从托管机器上 rdesktop 到托管在我的 CentOS 5.4 机器上的运行 Windows XP 的 VM,并且使用私有地址 (192.168.122.65) 正常工作,但我现在需要允许从其他计算机(而不仅仅是托管 VM 的机器)进行远程桌面访问。
我只需要允许访问一天左右,所以不想添加 NIC(出于 XP 激活的原因)。
有人能帮我iptables句法?
VM 位于私有/虚拟网络上:192.168.122.65,而我的 CentOS 机器位于物理网络上,地址为 10.1.3.38(192.168.122.1 作为虚拟网络的 GW)。
我发现了一个关于转发 Windows 远程桌面连接的 iptables 规则的问题但没有答案似乎工作,我有点不敢盲目尝试变化。我的 FORWARD 规则如下所列。
# iptables -L FORWARD
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere 192.168.122.0/24 state RELATED,ESTABLISHED
ACCEPT all -- 192.168.122.0/24 anywhere
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
RH-Firewall-1-INPUT all -- anywhere anywhere
如果我确实“盲目”玩,有没有简单的方法可以重置 CentOS 上的设置(服务网络重启)?
答案1
在执行任何操作之前,请先执行service iptables save
。这会将所有 iptables 规则复制到/etc/sysconfig/iptables
。从这里,您可以复制该文件,然后根据自己的喜好进行测试。要恢复到您保存的规则集,请确保规则集位于同一文件中(如果您没有保存任何其他 iptables,那么应该没问题)并执行service iptables resart
。您保存时所拥有的规则集现已恢复原位。
现在我有时间了,就更新一下:我认为语法会起作用:iptables -t nat -A PREROUTING -p tcp --dport 3389 --to-destination 192.168.122.65 ; echo 1 > /proc/sys/net/ipv4/ip_forward
。请注意,这意味着进入该主机的任何 RDP 流量都将被转发。
答案2
它应该可以很好地与您链接的帖子中的示例配合使用。必须在 iptables 表中完成nat
,如下所示:
iptables -t nat -I PREROUTING -p tcp -d 10.1.3.38 --dport 3389 -j DNAT --to-destination 192.168.122.65
然后使用您的 RDP 客户端远程连接到 10.1.3.38 端口 3389。
答案3
我宁愿将虚拟机上的网卡与主机上的网卡桥接起来,以便虚拟机从为主机提供服务的 DHCP 服务器获取 10.1.3.X 范围内的 IP 地址(或者,如果您使用静态 IP 地址,请设置您自己的 IP 地址)。
这是否可以接受取决于您的情况,但如果您使用的是单独的物理机而不是虚拟机,如果您只是将其粘贴到您的网络上,那么对您的虚拟机执行相同的操作。