平时工作和学习中我们会遇到科学上网的需求,目前我们可以通过warp+结合wireguard来实现VPN拨号上网,不过拨号上网后本地的网络就直接变成国外的网络,因为wireguard没有网络分流功能,这样我们在访问国内网络又会变的非常慢。有没有办法实现类似v2rayN或者clash 类似软件来实现网络分流(国内网络走国内,国外网络走代理)?今天就给大家介绍wireproxy 变现实现以上功能。
使用到相关软件
v2rayN
wireproxy
操作系统(centos7.9)
warp+公钥和私钥
下面我们具体介绍一下如何实现。
安装wireproxy 我们需要在linux 服务器中安装wireproxy ,wireproxy下载地址:https://github.com/pufferffish/wireproxy/releases下载wireproxy_linux_amd64.tar.gz 地址https://github.com/pufferffish/wireproxy/releases/download/v1.0.7/wireproxy_linux_amd64.tar.gz (根据使用安装的操作系统对应的版本)

将以上下载的软件 解压到linux 服务器中
wget https://mirror.ghproxy.com//https://github.com/pufferffish/wireproxy/releases/download/v1.0.7/wireproxy_linux_amd64.tar.gz
下载完成后我们可以看到wireproxy_linux_amd64.tar.gz 压缩包

解压缩
tar -xvf wireproxy_linux_amd64.tar.gz

2. 修改配置wgcf-profile.conf
我们需要将要wgcf-profile.conf 复制到上图文件夹中,修改增加socket 配置部分。修改后完成的配置文件如下
[Interface]
PrivateKey = XXXX
Address = 172.16.0.2/32, 2606:4700:110:83c1:df1f:5549:1ad:c887/128
DNS = 1.1.1.1
MTU = 1280
[Peer]
PublicKey = XXX
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 162.159.192.82:8742
[Socks5]
BindAddress = 0.0.0.0:12345
这里需要解释一下[Interface] 和 [Peer] 属于wireguard 相关配置文件。详细wireguard 配置可以参考https://zhuanlan.zhihu.com/p/566892816?utm_id=0
补充说一下因为我们这里是用到wireproxy 协议转化 所以增加了
[Socks5]
BindAddress = 0.0.0.0:12345
这里很好理解就是wireguard 客户端连接远程wireguard 服务端(我们这里用到cloudfare warp+ 分配公钥和私钥,关于这里如何获取这篇文章就不详细展开了),增加Socks5只是负责Socks5代理转发使用,占用了12345 socket分配端口,这里端口可以随便只要不和已经分配端口冲突即可。
将修改好的wgcf-profile.conf 复制到当前wireproxy 解压当前目录下,我的是 /home/wireproxy

3.启动wireproxy 代理
./wireproxy -c wgcf-profile.conf
或者使用nohup 启动
nohup ./wireproxy -c wgcf-profile.conf > nohup.log &

看到如上画面说明启动完成。
4.验证测试
我们启动电脑v2rayN,关于v2rayN 软件可以在github下载,地址:https://github.com/2dust/v2rayN
添加配置socket
服务器-》添加socket 服务器


参考以上方式完成设置。

以上配置完成后,我们使用网络跟踪 IP 查询 https://ip.skk.moe/

通过网络跟踪是可以访问到国外网站的。我们测试一下 https://huggingface.co/(国外网站,国内访问不了)

通过以上方式是可以通过wireproxy 转socket 从而实现网络分流。