【服务器工具】WireGuard中转隧道-自建MPLS内网专线

15,073
IPRoyal

WireGuard是一个极简而快速的加密V*N实现,以Linux内核模块的形式运行,比起传统的 IPSec、OpenV*N 等,效率更高、搭建更便捷,通过UDP协议进行数据传输,即使IP被墙也能使用。通过在两台服务器之间组建WireGuard隧道,变成伪 IPLC专线,这种利用软件手段实现的也叫做MPLS专线。

【服务器工具】WireGuard中转隧道-自建MPLS内网专线

安装WireGuard

根据官网命令进行常规安装即可,这里采用的是centos系统;文章源自技术白-https://jishubai.com/112.html

yum update -y && yum install curl -y
reboot # unless there were no updates
curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
yum install epel-release -y
yum install wireguard-dkms wireguard-tools -y

注意:因为Wireguard对内核的版本有要求,部分操作也需要自定义内核做支持,所以部分bbr内核不支持自定义的是没法安装了。利用yum安装的时候会把内核升级到最低版本要求(如果比最低版本低的话),所以常规安装后不需要再去特定调整内核,但是不要在日后的软件安装中进行内核的更换就好了。文章源自技术白-https://jishubai.com/112.html

生成公钥和私钥

进入到Wireguard默认配置目录,通常为/etc/wireguard目录,由于Wireguard通信需要依靠公钥和私钥进行相互鉴权,所以我们需要在服务器上生成公钥和私钥文件,执行下列命令:文章源自技术白-https://jishubai.com/112.html

cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey 
chmod 777 -R /etc/wireguard

配置服务端/客户端

这里的服务端和客户端是对等的,服务器既可叫客户端也可叫服务端(意思就是可以相互连接),我们这里为了区分定义为:国内机为客户端,国外机为服务端;文章源自技术白-https://jishubai.com/112.html

1、在服务端和客户端的/etc/wireguard目录下分别创建一个名称为wg0.conf的文件,直接命令行输入下列命令:文章源自技术白-https://jishubai.com/112.html

vi wg0.conf

2、在服务端也就是国外机的wg0.conf文件输入以下内容,在命令行输入cat privatekey和cat publickey命令可分别查看内容,##号及后面为注释内容,不用复制粘贴这个内容;文章源自技术白-https://jishubai.com/112.html

[Interface]
Address = 192.168.1.1/24   ##这里是自定义的服务端内网IP
ListenPort = 51820
PrivateKey = < 这里填写 服务端 上 privatekey 的内容 >
DNS = 8.8.8.8
MTU = 1420

# Client
[Peer]
PublicKey = < 这里填写 客户端 上 publickey 的内容 >
AllowedIPs = 192.168.1.2/24

3、在客户端的也就是国内机的wg0.conf文件内容如下:文章源自技术白-https://jishubai.com/112.html

[Interface]
PrivateKey = < 这里填写 客户端 上 privatekey 的内容 >
Address = 192.168.1.2/24
DNS = 8.8.8.8
MTU = 1420

# Server
[Peer]
PublicKey = < 这里填写 服务端 上 publickey 的内容 >
Endpoint = <填写服务端公网IP>:51820  
AllowedIPs = 192.168.1.1/24
PersistentKeepalive = 25

4、最后在两台服务器上分别输入下方启动命令启动服务:文章源自技术白-https://jishubai.com/112.html

wg-quick up wg0  ##启动wg0虚拟网卡
wg-quick down wg0 ##关闭wg0网络 
wg                ##查看当前的运行情况

5、输入wg命令可以查看到隧道已建立,可以互相在服务器上ping对方的内网IP查看是否有延时数据,比如在192.168.1.1服务器上输入:ping 192.168.1.2文章源自技术白-https://jishubai.com/112.html

【服务器工具】WireGuard中转隧道-自建MPLS内网专线

隧道中转:此时在国内机做好内网端口转发到国外机上面,然后在国外服务器中,搭建各类服务或转发流量到其它机器,通过国内机公网IP连接,流量就会通过WG内网隧道传输。文章源自技术白-https://jishubai.com/112.html

WireGuard Easy面板

手搓WireGuard进行搭建和组网是比较麻烦的,这里提供下wg-easy面板的搭建代码,具有网页前端管理;

安装Docker

如果您还没有安装 Docker,请运行以下命令进行安装:

wget -qO- get.docker.com | bash
systemctl start docker 
systemctl enable docker 

配置wg-easy

  docker run -d \
  --name=wg-easy \
  -e WG_HOST=YOUR_SERVER_IP \
  -e PASSWORD=YOUR_ADMIN_PASSWORD \
  -e WG_DEFAULT_ADDRESS=10.8.0.x \
  -e WG_ALLOWED_IPS=10.8.0.0/24 \
  -e WG_PERSISTENT_KEEPALIVE=25 \
  -v ~/.wg-easy:/etc/wireguard \
  -p 51820:51820/udp \
  -p 51821:51821/tcp \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --sysctl="net.ipv4.ip_forward=1" \
  --restart unless-stopped \
  weejewel/wg-easy

💡替换YOUR_SERVER_IP为您的 WAN IP(公网IP)或动态 DNS 主机名,注意保留后面的空格。

💡替换YOUR_ADMIN_PASSWORD为登录 Web UI 的密码,注意保留后面的空格。

💡如需要科学上网,替换10.8.0.0/24为0.0.0.0/0,注意保留后面的空格。

现在可在浏览器上使用 Web UI http://YOUR_SERVER_IP:51821

本站TG群组skill_blog   联系博主:nbskill (微信) 杂货铺曙光商店

IPRoyal
 最后更新:2023-4-11
技术白
  • WireGuard中转隧道
  • WireGuard隧道
  • WireGuard搭建隧道
  • WireGuard组网
  • 搭建MPLS专线
  • WireGuard搭建内网专线
  • WireGuard Easy面板
  • WireGuard管理面板