我一直在努力实现从笔记本电脑到台式机以及从台式机到笔记本电脑的双向 SSH 连接。家里有一个网络路由器,两台电脑都通过 LAN 电缆连接到路由器。我可以从笔记本电脑连接到台式机,但不能从台式机连接到笔记本电脑。
这些是配置:
Mint 17.3 Rosa (GNU/Linux 3.19.0-32-generic x86_64),桌面版
branislava@mint:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:24:21:db:51:4d
inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::224:21ff:fedb:514d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:32733 errors:0 dropped:0 overruns:0 frame:0
TX packets:16138 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18404580 (18.4 MB) TX bytes:1881439 (1.8 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:6362 errors:0 dropped:0 overruns:0 frame:0
TX packets:6362 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:561391 (561.3 KB) TX bytes:561391 (561.3 KB)
vmnet1 Link encap:Ethernet HWaddr 00:50:56:c0:00:01
inet addr:172.16.46.1 Bcast:172.16.46.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
vmnet8 Link encap:Ethernet HWaddr 00:50:56:c0:00:08
inet addr:192.168.89.1 Bcast:192.168.89.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:119 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Ubuntu 16.04 LTS(GNU/Linux 4.4.0-21-generic x86_64),笔记本电脑
branislava@ubuntu:~$ ifconfig
ens33 Link encap:Ethernet HWaddr 00:0c:29:3c:bc:3b
inet addr:192.168.17.129 Bcast:192.168.17.255 Mask:255.255.255.0
inet6 addr: fe80::4d02:b72:2730:3807/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15856 errors:0 dropped:0 overruns:0 frame:0
TX packets:7172 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9538356 (9.5 MB) TX bytes:990463 (990.4 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:6109 errors:0 dropped:0 overruns:0 frame:0
TX packets:6109 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:616225 (616.2 KB) TX bytes:616225 (616.2 KB)
两台计算机上的 /etc/network/interfaces 相同:
$ cat /etc/network/interfaces
auto lo
iface lo inet loopback
从台式机到笔记本电脑的 SSH 连接:
branislava@mint ~ $ ssh 192.168.17.129
ssh: connect to host 192.168.17.129 port 22: Connection timed out
从笔记本电脑到台式机的 SSH 连接:
branislava@ubuntu:~$ ssh 192.168.0.11
[email protected]'s password:
Welcome to Linux Mint 17.3 Rosa (GNU/Linux 3.19.0-32-generic x86_64)
Welcome to Linux Mint.
Last login: Fri Jul 22 15:39:44 2016 from 192.168.0.13
Ping 结果:
branislava@mint ~ $ping 192.168.17.129
PING 192.168.17.129 (192.168.17.129) 56(84) bytes of data.
^C
--- 192.168.17.129 ping statistics ---
210 packets transmitted, 0 received, 100% packet loss, time 210671ms
和:
branislava@ubuntu:~$ ping 192.168.0.11
PING 192.168.0.11 (192.168.0.11) 56(84) bytes of data.
64 bytes from 192.168.0.11: icmp_seq=1 ttl=128 time=1.20 ms
64 bytes from 192.168.0.11: icmp_seq=2 ttl=128 time=3.75 ms
64 bytes from 192.168.0.11: icmp_seq=3 ttl=128 time=2.06 ms
64 bytes from 192.168.0.11: icmp_seq=4 ttl=128 time=2.12 ms
64 bytes from 192.168.0.11: icmp_seq=5 ttl=128 time=2.13 ms
64 bytes from 192.168.0.11: icmp_seq=6 ttl=128 time=1.58 ms
64 bytes from 192.168.0.11: icmp_seq=7 ttl=128 time=1.77 ms
64 bytes from 192.168.0.11: icmp_seq=8 ttl=128 time=2.45 ms
...
--- 192.168.0.11 ping statistics ---
115 packets transmitted, 114 received, +1 errors, 0% packet loss, time 114232ms
rtt min/avg/max/mdev = 0.723/9.986/762.520/71.106 ms, pipe 3
它们都连接到互联网。有人知道问题出在哪里吗?
答案1
正如 user367880 提到的,您的笔记本电脑和台式机位于两个不同的子网中,我很惊讶您的笔记本电脑居然可以 ping 台式机。也许您的路由器正在帮助将流量路由到另一台主机。
我有以下建议:
使用命令检查路由
route
。通常家用路由器默认只有一个子网,因此只有一个 IP。连接到路由器的计算机应将路由器作为默认网关。使用命令route
可以帮助检查数据包的实际去向。尝试使用静态 IP,这样您就可以更好地控制子网。我假设您对计算机位于不同子网没有特定要求,因此您实际上可以使用静态 IP 来强制计算机位于同一子网中。例如,如果您的路由器 IP 类似于 ,
192.168.1.1
子网掩码为255.255.255.0
,您可以将两台计算机设置为192.168.1.10
和192.168.1.11
。两个默认网关都应指向192.168.1.1
。为了测试目的,您可以先尝试关闭防火墙。使用
sudo ufw disable
关闭防火墙。如果这有效,则意味着您需要添加一些规则以允许流量通过防火墙。
答案2
您的笔记本电脑和台式机位于两个不同的子网 192.168.0.x 和 192.168.17.x。
您的路由器是否创建了两个不同的子网?如果是,您可能需要在其中添加一些防火墙规则以允许两者之间的流量。
它们连接到哪个路由器?
答案3
首先,我感谢大家的帮助。
你说得对,但我忘了提一件重要的事情。Ubuntu 安装在虚拟机下。笔记本电脑有正确的 IP 地址,但 VM 有自己的 dhcp。只需在虚拟机设置下单击一下,一切就都正常了。再次感谢!