Ubuntu 20.04多网卡环境下仅NAT无线网卡可RDP,有线网卡无法远程连接求助
嘿,我来帮你捋捋这个问题!先明确下你的环境:Ubuntu服务器有三块工作网卡——无线wlp2s0(192.168.1.20,连Netgear NAT路由器),两块有线网卡enp1s0(192.168.51.6,连L2交换机)和enxe00000101db5(192.168.253.210,连防火墙)。现在从无线NAT网段能正常RDP到服务器,但两个有线网段都连不上,对吧?
给你列几个实用的排查方向,一步步来:
1. 确认RDP服务是否监听所有网卡
Ubuntu常用的RDP服务是xrdp,默认应该监听0.0.0.0(所有网卡),但偶尔会被配置成只监听特定IP。你可以用这条命令检查:
sudo netstat -tulpn | grep xrdp
如果输出里的监听地址是127.0.0.1或者192.168.1.20,那就是只绑定了本地或无线网卡。这时候需要编辑/etc/xrdp/xrdp.ini,找到port=3389上方的listen_address,改成0.0.0.0,然后重启服务:
sudo systemctl restart xrdp
2. 检查Ubuntu防火墙规则
Ubuntu默认用ufw,很可能有线网段的3389端口没开放。先看防火墙状态:
sudo ufw status verbose
如果没看到对应有线网段的允许规则,就针对性开放:
# 给192.168.51.0/24网段开放RDP sudo ufw allow from 192.168.51.0/24 to any port 3389 # 给192.168.253.0/24网段开放RDP sudo ufw allow from 192.168.253.0/24 to any port 3389
如果不想按网段限制,也可以直接开放所有来源的3389(安全性略低,按需选择):
sudo ufw allow 3389/tcp
3. 排查路由表,确保回程路由正常
多网卡环境最容易踩的坑就是回程路由不匹配:服务器收到有线网段的连接请求后,回复流量走了无线网卡,而NAT会导致有线设备收不到回复。先看当前路由表:
ip route show
看看默认路由是不是指向无线网卡的网关(比如192.168.1.1)。如果是,就给有线网段加静态路由,让回程流量走对应有线网卡:
# 假设192.168.51.0/24的网关是192.168.51.1,绑定enp1s0 sudo ip route add 192.168.51.0/24 dev enp1s0 src 192.168.51.6 # 假设192.168.253.0/24的网关是192.168.253.1,绑定enxe00000101db5 sudo ip route add 192.168.253.0/24 dev enxe00000101db5 src 192.168.253.210
要让路由永久生效,得把规则加到Netplan配置里(比如/etc/netplan/00-installer-config.yaml),示例格式:
network: ethernets: enp1s0: addresses: [192.168.51.6/24] routes: - to: 192.168.51.0/24 via: 192.168.51.1 metric: 100 enxe00000101db5: addresses: [192.168.253.210/24] routes: - to: 192.168.253.0/24 via: 192.168.253.1 metric: 100 wifis: wlp2s0: addresses: [192.168.1.20/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] access-points: "你的无线SSID": password: "你的无线密码" version: 2
然后应用配置:
sudo netplan apply
4. 验证有线网段的连通性
先从有线设备ping服务器的对应有线IP(比如192.168.51.6):
- 如果ping不通,先检查L2交换机/防火墙的端口配置,是不是做了VLAN隔离或者端口封禁;再在服务器上抓包看有没有收到ping请求:
sudo tcpdump -i enp1s0 icmp
如果能抓到ping请求但服务器没回复,还是防火墙或路由的问题;抓不到的话,就是网络设备的问题。
- 如果ping通但RDP连不上,回到前面的服务监听和日志排查。
5. 查看xrdp日志找细节
如果前面几步都没解决,看看xrdp的实时日志:
sudo journalctl -u xrdp -f
然后尝试从有线网段发起RDP连接,看日志里有没有连接记录、认证失败或其他报错,这些细节能帮你精准定位问题。
先按这些步骤排查,有结果或者新的疑问随时补充,我再帮你分析!
备注:内容来源于stack exchange,提问作者user305312

