天天看點

上古神器異地高效率組網

上古神器異地高效率組網
上古神器異地高效率組網

 👨🏻‍🎓部落客介紹:大家好,我是芝士味的椒鹽,一名在校大學生,熱愛分享知識,很高興在這裡認識大家🌟

🌈擅長領域:Java、大資料、運維、電子

🙏🏻如果本文章各位小夥伴們有幫助的話,🍭關注+👍🏻點贊+🗣評論+📦收藏,相應的有空了我也會回訪,互助!!!

🤝另本人水準有限,旨在創作簡單易懂的文章,在文章描述時如有錯,懇請各位大佬指正,在此感謝!!!

目錄

​​緣由​​

​​簡介​​

​​官網​​

​​WireGuard組網實作架構圖​​

​​下面用WireGuard示範一台公網伺服器和一台線下機器異步組網:​​

緣由

        相信很多的工作者、極客玩家或者學生黨在項目開發以及釋出的時候會遇到雲上伺服器資源不夠(包括記憶體不夠、磁盤不夠等等),而我們可能由于一些問題,無法更新雲伺服器的配置,這樣的場景就很尴尬對吧?現在的确有許多的像netapp、以及zerotier這樣的内網穿透的存在,但是存在一個問題就是不安全,路由網關并不是在我們自己機器上,而且這些市面的望穿也有高效的方法但是要用money,苦于囊中羞澀,這時候WireGuard就可以很好提供高性能的内網穿透能力。

        舉個例子:你是個學生或者工作者,在你的實驗室或者公司電腦上,有着項目或者資料,你有又出門在外,想要通路實驗室或者公司内部的資料,雖然像向日葵、ToDesk可以滿足需求,但是由于是第三方提供着提供有帶寬的限制,會導緻一卡一卡的,這時候你就可以使用Windows或者Linux自帶的遠端服務搭配上WireGuard解決這種尴尬的場面。

簡介

​​      WireGuard​​​ 是一個易于配置、快速且安全的開源 ​​VPN​​,它利用了最新的加密技術。目的是提供一種更快、更簡單、更精簡的通用 VPN,它可以輕松地在樹莓派這類低端裝置到高端伺服器上部署,WireGuard非常精簡隻有4000行代碼。

官網

位址:​​https://www.wireguard.com/quickstart/​​

WireGuard組網實作架構圖

  • 架構圖:
  • 上古神器異地高效率組網
    上古神器異地高效率組網

下面用WireGuard示範一台公網伺服器和一台線下機器異步組網:

WireGuard Server(一台公網伺服器):

  1. 更新update
yum update -y      
  1. 安裝wireguard
sudo yum install epel-release elrepo-release
sudo yum install yum-plugin-elrepo
sudo yum install kmod-wireguard wireguard-tools      
  1. 建立目錄
cd /etc/wireguard      
  1. 生成密鑰對
# 開始生成 密匙對(公匙+私匙)。
wg genkey | tee privatekey-server | wg pubkey > publickey-server # 生成服務端密鑰對      
  1. 配置服務端檔案

​vim /etc/wireguard/wg0.conf​

​輸入以下内容

[Interface]
Address = 10.100.0.1/16  # 這裡指的是使用 10.100.0.1,網段大小是 16 位
SaveConfig = true
ListenPort = 51820  # 監聽的 UDP 端口
PrivateKey = < 這裡填寫 Server 上 privatekey 的内容 >
# 下面這兩行規則允許通路伺服器的内網,注意替換`eth0`
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# Client,可以有很多 Peer
[Peer]
PublicKey = < 這裡填寫 Client 上 publickey 的内容 >
AllowedIPs = 10.100.0.2/32  # 這個 Peer 隻能是 10.100.0.2/32
# 如果想把所有流量都通過伺服器的話,這樣配置:
# AllowedIPs = 0.0.0.0/0, ::/0      
  1. 啟停服務端
wg-quick up wg0    #啟動服務端
wg-quick down wg0  #停止服務端
wg #檢視節點清單
wg syncconf wg0 <(wg-quick strip wg0) #重載配置檔案,不影響已有連接配接.      
  1. 更新update
yum update -y      
  1. 安裝wireguard
sudo yum install epel-release elrepo-release
sudo yum install yum-plugin-elrepo
sudo yum install kmod-wireguard wireguard-tools      
  1. 建立目錄
cd /etc/wireguard      
  1. 生成密鑰對
# 開始生成 密匙對(公匙+私匙)。
wg genkey | tee privatekey-client | wg pubkey > publickey-client   # 生成用戶端密鑰對      
  1. 配置用戶端檔案
[Interface]
PrivateKey = < 這裡填寫 Client 上 privatekey 的内容 >
Address = 10.100.0.2/32
DNS = 8.8.8.8  # 連接配接後使用的 DNS, 如果要防止 DNS 洩露,建議使用内網的 DNS 伺服器

[Peer]
PublicKey = < 這裡填寫 Server 上 publickey 的内容 >
Endpoint = 1.1.1.1:51820  # 服務端公網暴露位址,51280 是上面指定的
AllowedIPs = 10.100.0.0/16,172.17.0.11/20  # 指定要通路的服務端網段,或者設定0.0.0.0/0來進行全局代理.
PersistentKeepalive = 25      
  1. 啟動用戶端連接配接
wg-quick up ./wg0.conf      
  1. 啟動完用戶端之後回WireGuard服務端檢視,也可以嘗試從用戶端pingWireGuard伺服器(内網位址),注意公網作為WireGuard的伺服器要安全組開端口
wg