我本地Lubuntu的wifi IP地址是192.168.1.97
远程Lubuntu的wifi IP地址是192.168.1.198,
远程 Lubuntu 上运行的虚拟机的 IP 地址为 192.168.122.169。
我可以从本地机器访问虚拟机,通过 ssh 间接访问远程,然后通过 ssh 访问虚拟机。ssh [email protected]
ssh [email protected]
我可以直接通过虚拟机访问本地机。ssh [email protected]
由于本地 Lubuntu 上的路由表,我无法直接从本地计算机访问虚拟机
$ ssh [email protected]
ssh: connect to host 192.168.122.169 port 22: No route to host
我可以直接从本地 Lubuntu 访问虚拟机吗?
我是否需要修改本地 Lubuntu 和远程 Lubuntu 的路由表?
NAT 有帮助吗?
谢谢。
本地Lubuntu上的路由表为
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 600 0 0 wlx801f02b5c389
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.1.0 0.0.0.0 255.255.255.0 U 600 0 0 wlx801f02b5c389
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
远程Lubuntu上的路由表是
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 600 0 0 wlp5s0
192.168.1.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp5s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
虚拟机上的路由表为:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.122.1 0.0.0.0 UG 0 0 0 ens3
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens3
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 ens3
答案1
使用ProxyJump
或ProxyCommand
.
将其添加到您的~/.ssh/config
:
Host vmhost
User t
Hostname 192.168.1.198
Host vm
Hostname 192.168.122.169
User t
ProxyJump vmhost
或者对于旧ssh
版本ProxyJump vmhost
:
ProxyCommand ssh -q -W 192.168.122.169:22 vmhost
连接使用:
ssh vm