我的目标是能够使用桌面计算机上的远程桌面连接到运行在我的Linux服务器上的virtualbox上的windows xp。
我的设置:
我的问题:如果我尝试在家用电脑上使用远程桌面,我无法连接到Windows来宾。 如果我首先“ssh -X -C”进入debian服务器,然后运行“rdesktop 192.168.1.100”,我可以连接没有问题。 Windows防火墙被configuration为允许远程桌面连接,我甚至closures(因为这是多余的),看看这是否是问题,但没有什么区别。
由于我能够从本地子网内连接,我怀疑我没有正确设置我的debian防火墙来处理来自外部局域网的连接。 这是我所做的…
首先我的ufw状态:
ufw status Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 80 ALLOW Anywhere 3389 ALLOW Anywhere
我编辑了/etc/ufw/sysctl.conf并添加了:
net/ipv4/ip_forward=1
编辑/ etc / default / ufw并添加:
DEFAULT_FORWARD_POLICY="ACCEPT"
编辑/etc/ufw/before.rules并补充说:
# setup port forwarding to forward rdp to windows VM *nat :PREROUTING - [0:0] -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.100 -A PREROUTING -i eth0 -p udp --dport 3389 -j DNAT --to-destination 192.168.1.100 COMMIT # Don't delete these required lines, otherwise there will be errors *filter <snip>
重新启动防火墙等,但没有连接。
我在debian主机上的日志文件显示这(我公开的IP地址已被删除这张贴,但在实际日志中是正确的):
Feb 6 11:11:21 localhost kernel: [171991.856941] [UFW AUDIT] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27518 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0 Feb 6 11:11:21 localhost kernel: [171991.856963] [UFW ALLOW] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27518 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0 Feb 6 11:11:24 localhost kernel: [171994.856701] [UFW AUDIT] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27519 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0 Feb 6 11:11:24 localhost kernel: [171994.856723] [UFW ALLOW] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27519 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0 Feb 6 11:11:30 localhost kernel: [172000.856656] [UFW AUDIT] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27520 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0 Feb 6 11:11:30 localhost kernel: [172000.856678] [UFW ALLOW] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27520 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0
虽然这是当前的设置/configuration,但我也尝试了几个变种。 我想也许ISP会阻止3389出于某种原因,并试图使用不同的端口,但再次没有连接。
有任何想法吗…? 我忘了修改一些文件的地方?
我真的没有这样做,但你需要做一些比UFW更好的IPTAbles“防火墙”pipe理。
这对于桌面使用来说很好,但它仅仅是为了“服务器级”的使用而devise的。
我强烈build议坐下来花费一些时间学习NetFilter / IPTables的工作方式,并直接使用这些命令。 如果担心会破坏某些东西,在更改之前备份IPTablesconfiguration,或者甚至是基本的“Git”版本控制设置将帮助您尝试并获得信心。
这为我解决了这个问题:
sudo ufw allow proto tcp from 192.168.1.100 to any port 22
问题在于响应被阻止。 希望它可以帮助别人。
不知道你是否仍然需要帮助。 我有完全相同的问题,问题是相当基本的。 目标服务器没有默认网关条目,并且没有将这些应答返回到网关。 设置默认网关后,一切都很好。 您可以通过inputroute -n (使用-n避免每个条目耗时的DNS查找)来检查您的路由。
我只是做了:ufw允许[虚拟机IP地址]