利用笔记本与SSH转发给服务器上的虚拟机通网
利用笔记本给服务器上的虚拟机通网
- 1. 操作步骤
- 2. 简化命令
一直仰赖的Libvirt今天突然给我IP干没了,怎么都解决不了,最后还是放弃了,使用QEMU+端口访问模式进行。QEMU网络配置一向是特别恶心的操作,本文主要通过个人笔记本来给QEMU通往。不是不配网桥,而是SSH转发更有性价比。
1. 操作步骤
假设A、B、C,B是服务器,C是B上的虚拟机(端口2333),A是个人PC。默认A上装一个科学上网做转发。
在机器B上:
ssh -R 8888:localhost:8888 -p 2333 user_C@localhost
这里,将C的8888端口转发到B的8888端口,user_C是虚拟机用户名。localhost不变,就代表B。
在机器A上:
ssh -R 8888:localhost:7890 user_B@IP_of_B
这里,user_B是服务器B的用户,IP_of_B是B的IP,7890是科学上网的端口。
至此,在user_C@localhost上把proxy改成localhost:8888,即可联网。
2. 简化命令
能不能只在机器A上操作?
首先配置.ssh/config
Host BHostName IP_of_BUser user_BHost A_to_CProxyCommand ssh -W IP_of_B:2333 BUser user_CRemoteForward 8888 localhost:8888
现在,VSCode连虚拟机使用A_to_C,这会自动完成机器B上的端口转发(虚拟机8888转发到B的8888)。
由此,只需在宿主机上执行ssh -R 8888:localhost:7890 user_B@IP_of_B即可
