问题描述
在使用虚拟机时,一般情况下桌面级虚拟化软件软件提供三种类型的网卡:bridge、host-only、NAT。使用bridge网卡可以使所有流量通过交换机进行交换,宿主机与虚拟机的互相访问也经由交换机,没网的情况下会很尴尬地连不上网,对于使用第三方终端(指宿主机SSH至虚拟机)操作Linux的用户来说,很不友好,且网络流量过大(宿主机<->虚拟机)对网卡负担也比较重。
使用host-only网卡,可以实现宿主机与虚拟机直接进行通信,且可以设置固定IP,唯一问题在于不能访问外部网络。
使用NAT网卡,无法设置固定IP(可以设置使用宿主机的相关设置,但是这不就是桥接了?)。
目的
无论宿主机网络状态如何,都可以通过SSH访问虚拟机,且虚拟机可以正常访问网络。
解决思路
以host-only模式为网卡,解决host-only模式没有网络的问题(顺便解决科学上网)。
步骤
宿主机设置
启用clash for windows (其他socks代理也可)的局域网访问功能,同时在Windows防火墙入站规则中添加规则,打开socks端口。
Windows 防火墙设置示例
虚拟机设置(以Ubuntu为例)
安装redsocks
1 | sudo apt update -y && \ |
修改redsocks配置
vim /etc/redsocks.conf
1 | redsocks { |
编写启动脚本
1 |
|
使用root权限运行
编写停止脚本
1 | iptables -F |