0%

局域网代理上网

有时候局域网内的Linux无法上网,但是Windows可以,这时候就可以在Windows配置代理服务端

Windows配置

软件下载

Windows下有很多代理软件, 随便选择一个, 此处使用Privoxy

官方下载地址: http://www.privoxy.org/sf-download-mirror/Win32/3.0.0%20%28stable%29/privoxy_setup_3_0_0-3.exe

阿里云盘地址: https://www.aliyundrive.com/s/p4EDMZ1YJaN

软件配置

安装完毕后, 在软件安装目录下找到主配置文件config.txt

在尾部添加一行

listen-address 0.0.0.0:18088

如果你不喜欢18088这个端口也可以改成你自己喜欢的, 如666

修改完成之后就可以双击软件启动了

启动之后在powershell使用如下命令,可以看到已经启动成功,端口已经监听在18088

PS C:\Users\jiangl> netstat -ano | findstr "18088"
TCP 0.0.0.0:18088 0.0.0.0:0 LISTENING 9776

此时Windows服务端已经配置成功

Linux客户端配置

在Linux中我们只讨论在无图形化的系统中, 如果浏览器需要上网, 需要设置各浏览器的代理

设置http[s]代理

使用vim编辑/etc/profile文件(没有vim可用vi)

vim /etc/profile # 修改文件

# 在最后加入下面几行

http_proxy=http://[Windows服务端IP]:18088 # 例 http://192.168.0.1:18088
https_proxy=http://[Windows服务端IP]:18088 # 具体看自己局域网内Windows服务端IP地址
export http_proxy https_proxy

这时Linux可以上网了, 但是不能使用ping, 可以使用curl测试www.baidu.com

代理后Docker无法拉取镜像

解决方案

  1. 为docker服务创建一个内嵌的systemd目录和conf文件
mkdir -p /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/http-proxy.conf
  1. 添加环境变量
[Service]
Environment="HTTP_PROXY=http://[Windows服务端IP]:18088/"
Environment="HTTPS_PROXY=http://[Windows服务端IP]:18088/"
Environment="NO_PROXY=localhost,127.0.0.1"

注意事项: HTTPS_PROXY后的url也是http开头,而不是https,否则会报错

  1. 查看变量是否设置成功
systemctl show --property=Environment docker
  1. 重启服务
systemctl daemon-reload
systemctl restart docker

代理后Ubuntu无法使用apt下载

解决方案

新建文件/etc/apt/apt.conf(文件名任意)

内容如下:

Acquire::http::proxy "http://[Windows服务端IP]:18088/"; 
Acquire::https::proxy "http://[Windows服务端IP]:18088/";

之后下载软件时, 如下操作:

sudo apt install vim -c /etc/apt/apt.conf # -c 指定配置文件