wireguard实现虚拟私有网络搭建
1、準(zhǔn)備條件
- 一臺阿里云ECS服務(wù)器有公網(wǎng)IP,centos7系統(tǒng)
- 一臺實驗室內(nèi)網(wǎng)服務(wù)器,可以ping通外網(wǎng),centos7系統(tǒng)
- 自己的pc可以正常上網(wǎng),Windows11系統(tǒng)
實現(xiàn)在自己PC上通過隧道連接到內(nèi)網(wǎng)服務(wù)器原理圖
2、環(huán)境配置
linux內(nèi)核版本大于5.6已經(jīng)內(nèi)置有wireguard,只需要用modprobe wireguard加載一下就可以,
低于5.6則需要升級內(nèi)核版本
以下是升級內(nèi)核過程(參考通過WireGuard搭建隧道實現(xiàn)內(nèi)網(wǎng)穿透 - 簡書 (jianshu.com))
? # 查看當(dāng)前內(nèi)核版本uname--kernel-release#安裝必要工具,卸載舊的內(nèi)核源碼包yum -y install epel-release curlsed -i "0,/enabled=0/s//enabled=1/" /etc/yum.repos.d/epel.repoyum remove -y kernel-devel# 導(dǎo)入公鑰rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org# 升級安裝elreporpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm# 安裝新版本工具包yum --disablerepo="*" --enablerepo="elrepo-kernel" listavailableyum -y --enablerepo=elrepo-kernel install kernel-ml# 設(shè)置默認(rèn)啟動sed -i"s/GRUB_DEFAULT=saved/GRUB_DEFAULT=0/" /etc/default/grubgrub2-mkconfig-o /boot/grub2/grub.cfgwget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-ml-devel-6.15.10-1.el7.elrepo.x86_64.rpmrpm -ivhkernel-ml-devel-6.15.10-1.el7.elrepo.x86_64.rpm#內(nèi)核版本大于5.6就行,可以自己去elrepo找yum -y--enablerepo=elrepo-kernel install kernel-ml-devel# 重啟reboot#查看升級后的內(nèi)核版本uname--kernel-releasemodprobe wireguard #加載模塊??3、安裝wireguard工具
yum insatll wireguard-tools#開啟IP轉(zhuǎn)發(fā)echo?"net.ipv4.ip_forward?=?1"?>>?/etc/sysctl.confsysctl?-p?4、進(jìn)入存儲路徑調(diào)整權(quán)限
cd/etc/wireguard/
chmod 0777/etc/wireguard
#調(diào)整目錄默認(rèn)權(quán)限
umask 077
5、生成三對密鑰(密鑰都在ECS上面生成)
#生成私鑰
wg genkey> server.key
wg genkey> client1.key
wg genkey > client2.key
#通過私鑰生成公鑰
wg pubkey< server.key > server.key.pub
wg pubkey< client1.key > client1.key.pub
wg pubkey < client2.key > client2.key.pub
5、配置ECS作為server(其實wireguard沒有server和client概念,這里只是方便區(qū)分和理解)
vim/etc/wireguard/wg0.conf?? 加入如下配置
[Interface]PrivateKey = server.key # 填寫本機(jī)的privatekey 內(nèi)容Address = 192.168.4.121 #本機(jī)虛擬局域網(wǎng)IPPostUp?? =iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT;iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEPostDown = iptables -D FORWARD -i wg0 -j ACCEPT;iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -jMASQUERADE#注意eth0需要為本機(jī)網(wǎng)卡名稱ListenPort = 40001 # 監(jiān)聽端口DNS = 8.8.8.8MTU = 1420[Peer]PublicKey =?client1.key.pub? #client1的公鑰AllowedIPs = 192.168.4.101/32 #客戶端client1所使用的IP[Peer]PublicKey =?client2.key.pub? #client2的公鑰AllowedIPs = 192.168.4.111/32 #客戶端Client2所使用的IP同時在ECS的控制臺安全組配置安全規(guī)則,放行40001端口
命令行最好關(guān)閉一下防火墻,systemctl stop firewalld
#啟動wg0
wg-quickup wg0
#關(guān)閉wg0
wg-quickdown wg0
設(shè)置開機(jī)自啟動
systemctlenable wg-quick@wg0
查看wg,我這里是已經(jīng)都配置好了兩個peer的狀態(tài)
ip a查看
6、配置自己的pc端作為client1
從官網(wǎng)下載一個windows版本的客戶端app,網(wǎng)址為 https://www.wireguard.com/install/
我這有個下載好的百度網(wǎng)盤 請輸入提取碼
提取碼:8888
安裝
左下角點擊添加空隧道
來到這個界面
刪除原有配置,加入如下配置
[Interface]PrivateKey =uEFMMjDnvTXwpe87um9i1Gw0KgGm4AQpmrm7EmkY=? ? ?此處為client1的私鑰Address = 192.168.4.101/32MTU = 1420[Peer]PublicKey =E1SqvWKHrhHORZyLKQvDrq3wbFtq3HJsDhb0stK1Q=? ? ? 此處為server的公鑰AllowedIPs = 192.168.4.0/24Endpoint = ECS公網(wǎng)IP:40001??? #修改IP和放行的端口PersistentKeepalive = 15點擊activate就可以連接
pc可以成功ping ECS的虛擬地址,(先用client ping server端建立連接)
ecs也可以成功ping pc
7、內(nèi)網(wǎng)服務(wù)器配置為client2
vim /etc/wireguard/wg0.conf? 加入如下配置
[Interface]PrivateKey =KPjxjGwTHESCmXNuskN0g3kzHAKW34T+EYVGPqrkU=?#此處為client2的私鑰Address = 192.168.4.111 #此處為peer規(guī)定的客戶端IPMTU = 1420[Peer]PublicKey =E1SqvWKHrhHORZyLK90QvDrq3Ftq3HJsDhb0stK1Q=?#此處為server的公鑰AllowedIPs = 192.168.4.0/24 #此處為允許的服務(wù)器IPEndpoint = ECS的IP:40001 #服務(wù)器IP+端口PersistentKeepalive = 15同樣的方式創(chuàng)建wg
ping ECS虛擬IP成功
ECSping內(nèi)網(wǎng)IP成功
最后用pc ping 內(nèi)網(wǎng)ip成功
通了之后就可以從PC通過ssh到內(nèi)網(wǎng)服務(wù)器,單純內(nèi)網(wǎng)穿透不如用frp更方便些,但wireguard還有其他功能比較好用。
總結(jié)
以上是生活随笔為你收集整理的wireguard实现虚拟私有网络搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos7 系统更改apache默认
- 下一篇: Qemu 安装