使用Ubuntu服务器14.04我得到了端口2222上运行的ssh服务器(他们在build筑中这样问)。 我已经完成了整个设置审查,似乎没有什么好。
这是build立的:
iftop的传入networking活动。 我得到了正确的规则运行:
2222/TCP ALLOW Anywhere
在sshd.conf文件中,我得到:
我得到了2222端口的ssh服务器。
AUTH模式下设置ssh服务器进行日志logging,但在连接时我无法在/var/log/auth.log看到任何东西。 所以任何时候我尝试连接,我得到一个消息,如:
ssh: connect to host <publicbuildingip> port 2222: Connection refused
以详细模式输出运行客户端:
debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug1: Connecting to <publicip> [<publicip>] port 2222. debug1: connect to address <publicip> port 2222: Connection refused ssh: connect to host <publicip> port 2222: Connection refused
如果我尝试从同一networking的主机login,也会发生同样的情况。
在服务器上运行netstat ,例如sudo netstat -tulpn | grep ssh sudo netstat -tulpn | grep ssh输出:
tcp 0 0 127.0.0.1:2222 0.0.0.0:* LISTEN 969/sshd
从networking外部输出的公网IP上运行nmap :
Host is up (0.051s latency). Not shown: 996 filtered ports PORT STATE SERVICE 21/tcp closed ftp 80/tcp open http 2222/tcp closed unknown 8080/tcp closed http-proxy Nmap done: 1 IP address (1 host up) scanned in 5.31 seconds
尝试telnet <publicip> 2222
输出:
telnet: Unable to connect to remote host: Connection refused
如果使用build筑物内的networkingIP尝试,也一样。
但是iftop在服务器显示器上运行,在尝试login时实际上有networking活动。
在服务器上运行tcpdump ,如: tcpdump -vniay port 2222 -i eth0将在login尝试时输出:
15:53:36.812402 IP (tos 0x0, ttl 64, id 56954, offset 0, flags [DF], proto TCP (6), length 60) 192.168.1.86.39822 > 192.168.1.90.2222: Flags [S], cksum 0xa1b8 (correct), seq 3966921350, win 292000, options [mss 1460,sackOK,TS val 308476 ecr 0,nop,wscale 7], lenght 0
有什么可能是失败的?
基于netstat输出和你的sshdconfiguration文件(特别是这一行 ),你的SSH守护进程正在监听一个本地IP地址(127.0.0.1),而不是一个实际与你的LAN通信的IP或通过路由器/networking上的网关设备。
validation您的sshd_config设置为具有LAN上的ListenAddress行,例如分配给服务器的专用LAN IP地址。 如果没有,则将其添加到port指令之后,使用ListenAddress 0.0.0.0或ListenAddress ::等语法replace具有实际IPv4或IPv6地址的项目。
请记住,绑定到127.0.0.0/8中的任何IP地址将只会在本地计算机本身,而不是任何可以实际路由到您的LAN /本地networking/任何地方的地址。