当通过SSH连接Linux服务器时,系统会根据路由表自动选择出站网卡。以下是详细分析:
连接目标网卡判定逻辑:
0.0.0.0
时会接收所有网卡的连接关键检查命令:
# 查看当前SSH连接来源(服务端执行)
netstat -tnpa | grep -i 'ssh' | grep -i 'established'
# 查看所有网卡信息
ip -4 -o addr show | awk '{print $2, $4}'
# 查看路由表(确定哪个网卡处理目标流量)
ip route get <客户端IP> | grep -oP 'dev \K\S+'
典型场景分析:
特殊配置影响:
/etc/ssh/sshd_config
中ListenAddress
可指定监听特定IP建议通过tcpdump
实时验证:
# 在所有活跃网卡上抓包(需要root)
for iface in $(ip -o link show | awk -F': ' '{print $2}'); do
tcpdump -i $iface 'port 22' -n -c 5 &
done
连接时即可观察到具体流量通过的网卡。