Ubuntu 22.04 LTS服务器SSH公网访问及多场景连接异常问题求助
Ubuntu 22.04 LTS服务器SSH公网访问及多场景连接异常问题求助
大家好,我最近在折腾Ubuntu 22.04 LTS服务器的SSH连接,碰到了几个奇怪的场景异常,实在搞不定了,来请教各位大佬。先把目前的情况和已做的操作整理清楚:
一、可以正常连接的SSH场景
- 服务器本地通过localhost连接:
ssh user@localhost - 服务器自身通过私有IP连接:
ssh user@192.168.1.13 - 局域网内安卓客户端通过私有IP连接:
ssh user@192.168.1.13 - 外网安卓客户端通过公网IP连接:
ssh user@180.x.x.x
二、无法连接的SSH场景
- 局域网内Windows 10客户端通过私有IP连接:
ssh user@192.168.1.13 - 服务器自身通过公网IP连接:
ssh user@180.x.x.x - 局域网内安卓客户端通过公网IP连接:
ssh user@180.x.x.x
三、已完成的相关配置
- 防火墙设置:启用UFW并放行SSH端口,执行了以下命令:
sudo ufw enable sudo ufw allow ssh - 路由器配置:已设置端口转发规则,将公网22端口映射到服务器私有IP的22端口
- SSH服务配置:使用默认的
sshd_config文件,未做任何自定义修改 - 端口验证情况:
- 本地执行
sudo ufw status确认22端口已开放 - 通过YouGetSignal Port Forwarding Tester、PortCheckTool等工具检测,公网22端口显示为开放状态
- 本地执行
四、异常测试的细节
在服务器本地执行ssh -vv user@180.x.x.x进行调试,得到的输出和连接一个随机无效IP的结果完全一致,关键输出片段如下:
user@comp:~$ ssh -vv user@180.x.x.x OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files debug1: /etc/ssh/ssh_config line 21: Applying options for * debug2: resolve_canonicalize: hostname 180.x.x.x is address debug1: Connecting to 180.x.x.x [180.x.x.x] port 22.
明明工具已经检测到公网22端口是开放的,但本地用公网IP连自己却没有正常连接的后续日志,和连无效IP的表现一模一样。
核心诉求
我最终的目标是让服务器SSH能被任意设备(无论局域网还是外网)通过公网IP正常访问,同时解决局域网内Windows 10客户端无法通过私有IP连接的问题,麻烦各位帮忙分析下问题出在哪,该怎么排查解决?
备注:内容来源于stack exchange,提问作者x60id




