|
2 | 2 | title: 为Ubuntu主机配置Privado VPN |
3 | 3 | author: me |
4 | 4 | date: 2026-02-06 8:25:00 +0800 |
5 | | -description: 如何为Ubuntu系统的电脑配置Privado VPN,并且支持域名白名单访问 |
| 5 | +description: 如何为Ubuntu系统的电脑配置Privado VPN,支持域名白名单访问,并支持作为代理服务器 |
6 | 6 | categories: |
7 | 7 | - 计算机 |
8 | 8 | - 网络 |
@@ -89,7 +89,7 @@ curl ipinfo.io |
89 | 89 | 其中**smartdns**是本地的DNS服务,不过最终我感觉**ipset**好像没有用。第一步,我们来安装它们,大家可以先不安装**ipset**,看看后面需不需要再说。 |
90 | 90 | ```bash |
91 | 91 | sudo apt update |
92 | | -sudo apt install smartdns ipset nftables |
| 92 | +sudo apt install smartdns nftables ipset |
93 | 93 | ``` |
94 | 94 |
|
95 | 95 | 然后是为Privado创建一个IP表,最初ChatGPT给的命令是 |
@@ -304,6 +304,41 @@ nftset /youtube.com/#4:inet#vpn#vpnset |
304 | 304 | sudo systemctl restart smartdns |
305 | 305 | ``` |
306 | 306 |
|
| 307 | +## 配置网络代理 |
| 308 | +在给Ubuntu配置网络代理后,我们也可以进一步把它当做代理服务器,下面我们就来配置,这里我没有使用**Tinyproxy**,因为我最开始配置后使用**codex**结果一直出问题,感觉它代理HTTPS流量有一点问题,一直连接都报错意外的EOF,AI说可能是COONECT有问题,所以最后选的是**Squid** |
| 309 | +```bash |
| 310 | +sudo apt install squid |
| 311 | +``` |
| 312 | +然后进入`/etc/squid/squid.conf`{: .filepath} 编辑配置文件(因为这个文件自动生成的例子,太多了,还很长,我直接把它重命名`/etc/squid/squid.example.conf`{: .filepath} 了,后面的配置都是重新写的)。<br><br> |
| 313 | +首先,写`http_port`,把它设置为你希望它运行的端口,比如我就改成`http_port 3128`。然后加上允许访问的源IP地址,比如我的电脑的LAN IP是`192.168.101.92/24`,ZeroTier的IP是`172.22.165.129/16`,那我就这样写 |
| 314 | +``` |
| 315 | +acl localnet src 192.168.101.0/24 # 0表示这一位随意匹配 |
| 316 | +acl zerotier src 172.22.0.0/16 |
| 317 | +
|
| 318 | +http_access allow localnet |
| 319 | +http_access allow zerotier |
| 320 | +http_access deny all |
| 321 | +``` |
| 322 | +
|
| 323 | +然后为了支持HTTPS流量,还需要放行CONNECT到443端口的流量,还是配置文件 |
| 324 | +``` |
| 325 | +acl SSL_ports port 443 |
| 326 | +acl CONNECT method CONNECT |
| 327 | +http_access allow CONNECT SSL_ports |
| 328 | +``` |
| 329 | +含义是放行HTTPS到443端口的流量 |
| 330 | +
|
| 331 | +然后启动**Squid** |
| 332 | +```bash |
| 333 | +sudo systemctl enable --now squid |
| 334 | +``` |
| 335 | +
|
| 336 | +需要注意的是,尽管Codex的流量是HTTPS流量,代理配置的环境变量仍然必须写HTTP,也就是这样 |
| 337 | +``` |
| 338 | +HTTP_PROXY=http://192.168.101.92:3128 |
| 339 | +HTTPS_PROXY=http://192.168.101.92:3128 |
| 340 | +``` |
| 341 | +因为**Squid**是HTTP代理,不能处理HTTPS流量,做HTTPS代理是直接转发的流量包,但是对接它本身必须使用HTTP |
307 | 342 |
|
308 | 343 | [^official]: Privado官方的配置教程:[Linux Wireguard® Manual Setup - PrivadoVPN](https://support.privadovpn.com/kb/article/1131-linux-wireguard%C2%AE-manual-setup/?section_id=108) |
309 | 344 | [^smartdns]: 官网IPSet配置方法:[IPSet和NFTSet - SmartDNS](https://pymumu.github.io/smartdns/config/ipset-nftset/) |
|
0 commit comments