ssh远程目标机器提示:Cannot assign requested address

错误日志

connect to address 1.1.1.2 port 11506: Cannot assign requested address

通常不是SSH账号或认证问题,而是底层网络/本机配置问题。它基本意思是 本机无法分配本地套接字去连接目标 IP/端口


分析解决

1.端口耗尽或 ephemeral port 问题

TCP 连接需要本地随机端口(32768-60999 范围默认)。如果你的系统同时发起太多连接,本地短时间端口可能耗尽。

查看占用情况:

1
ss -nat | grep ESTAB | wc -l

如果很多连接处于 TIME_WAIT,可能需要:

1
2
3
4
5
6
7
8
9
# 检查
sysctl net.ipv4.ip_local_port_range
sysctl net.ipv4.ip_local_reserved_ports

# 临时优化
sysctl -w net.ipv4.tcp_tw_reuse=1

sysctl -w net.ipv4.ip_local_port_range="1024 65535"
sysctl -w net.ipv4.ip_local_reserved_ports=""

我这里问题是,ip_local_port_range && ip_local_reserved_ports 设置成一样值导致问题(1024 65536)。

2.本地路由问题

目标 IP 可能在本机不可达(路由或网关问题)。

1
2
ping 10.6.234.x
traceroute 10.6.234.x

确认是否能 ping 通。


3.防火墙 / SELinux / iptables

有时候本地防火墙限制了出站连接到非标准端口(11506)。

1
2
sudo iptables -L -n
sudo firewall-cmd --list-all