狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

使用WireGuard內網穿透

admin
2024年7月24日 18:49 本文熱度 814

1. 前言

WireGuard 是由 Jason Donenfeld 等人用 C 語言編寫的一個開源 威屁恩 協議,被視為下一代 威屁恩 協議,旨在解決許多困擾 IPSec/IKEv2、Open威屁恩 或 L2TP 等其他 威屁恩 協議的問題。它與 Tinc 和 MeshBird 等現代 威屁恩 產品有一些相似之處,即加密技術先進、配置簡單。從 2020 年 1 月開始,它已經并入了 Linux 內核的 5.6 版本,這意味著大多數 Linux 發行版的用戶將擁有一個開箱即用的 WireGuard。

1.1. WireGuard 優點

配置精簡,可直接使用默認值
只需最少的密鑰管理工作,每個主機只需要 1 個公鑰和 1 個私鑰。
就像普通的以太網接口一樣,以 Linux 內核模塊的形式運行,資源占用小。
能夠將部分流量或所有流量通過 威屁恩 傳送到局域網內的任意主機。
能夠在網絡故障恢復之后自動重連,戳到了其他 威屁恩 的痛處。
比目前主流的 威屁恩 協議,連接速度要更快,延遲更低(見上圖)。
使用了更先進的加密技術,具有前向加密和抗降級攻擊的能力。
支持任何類型的二層網絡通信,例如 ARP、DHCP 和 ICMP,而不僅僅是 TCP/HTTP。
可以運行在主機中為容器之間提供通信,也可以運行在容器中為主機之間提供通信。

1.2. WireGuard 工作原理

中繼服務器工作原理
中繼服務器(Bounce Server)和普通的對等節點一樣,它能夠在 NAT 后面的 威屁恩 客戶端之間充當中繼服務器,可以將收到的任何 威屁恩 子網流量轉發到正確的對等節點。事實上 WireGuard 并不關心流量是如何轉發的,這個由系統內核和 iptables 規則處理。

如果所有的對等節點都是公網可達的,則不需要考慮中繼服務器,只有當有對等節點位于 NAT 后面時才需要考慮。

在 WireGuard 里,客戶端和服務端基本是平等的,差別只是誰主動連接誰而已。雙方都會監聽一個 UDP 端口,誰主動連接,誰就是客戶端。主動連接的客戶端需要指定對端的公網地址和端口,被動連接的服務端不需要指定其他對等節點的地址和端口。如果客戶端和服務端都位于 NAT 后面,需要加一個中繼服務器,客戶端和服務端都指定中繼服務器作為對等節點,它們的通信流量會先進入中繼服務器,然后再轉發到對端。

WireGuard 是支持漫游的,也就是說,雙方不管誰的地址變動了,WireGuard 在看到對方從新地址說話的時候,就會記住它的新地址(跟 mosh 一樣,不過是雙向的)。所以雙方要是一直保持在線,并且通信足夠頻繁的話(比如配置 persistent-keepalive),兩邊的 IP 都不固定也不影響的。

2. 安裝wireguard

2.1. 前提條件

需要有公網IP, VPS, 而且公網IP需要直接綁定在VPS上,
公網IP綁定在網關, 然后通過端口轉發, 配置不能成功, 因為中繼服務器必須知道對端的公網IP, 如果中繼服務器放在網關后面, 對端IP對中繼服務器來說已經不可見.

系 統: centos 7.x
內核要求: > 3.10 (uname -r)

三種安裝方式, 根據具體情況任選其一

2.2. 安裝方法 1: a signed module is available as built-in to CentOS's kernel-plus

sudo yum install yum-utils epel-releasesudo yum-config-manager --setopt=centosplus.includepkgs=kernel-plus --enablerepo=centosplus --savesudo sed -e 's/^DEFAULTKERNEL=kernel$/DEFAULTKERNEL=kernel-plus/' -i /etc/sysconfig/kernelsudo yum install kernel-plus wireguard-toolssudo reboot

2.3. 安裝方法 2: users wishing to stick with the standard kernel may use ELRepo's pre-built module

sudo yum install epel-release elrepo-releasesudo yum install yum-plugin-elreposudo yum install kmod-wireguard wireguard-toolssudo reboot

2.4. 安裝方法 3: users running non-standard kernels may wish to use the DKMS package instead

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmsudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.reposudo yum install wireguard-dkms wireguard-toolssudo reboot

3. 服務器端配置

3.1. 首先為wireguard節點創建密鑰對

## 進入wireguard的配置文件目錄cd /etc/wireguard## 設置umask自動為私鑰加上合適的權限umask 077# 為節點1生成私鑰wg genkey > node1_priv_key# 為節點1生成公鑰wg pubkey < node1_priv_key > node1_pub_key## 查看公鑰和私鑰cat node1_priv_key && cat node1_pub_key

創建wireguard節點1配置文件

/etc/wireguard/wg0.conf

[Interface]Address = 192.168.2.100DNS = 114.114.114.114PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEPostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADEListenPort = 8888PrivateKey = private_key from node1_priv_key # 將上一步生成的private_key拷貝過來[Peer]PublicKey = zy3IkHgq6SdM ## Peer節點的公鑰AllowedIPs = 192.168.2.101/32

說明:
Address為wireguard新生成的網卡的IP地址;
PostUp為wireguard服務啟動后的執行的命令, 即一些iptables規則
PostDown為wireguard服務關閉時需要清理的規則
其中的參數eth0為網卡名稱, 需要根據節點的實際情況替換
ListenPort 可用為任意可用的端口, 只有中繼服務器(Bounce Server)才需要配置, 其它節點不需要配置, 它主要是為了內網穿透時UDP打洞使用.
服務啟動后將監聽在udp端口, 所以防火墻需要放開對應的UDP端口而不是TCP端口
[Peer] 用來配置對端信息例如Node2
PublicKey 為Node2的公鑰
AllowedIPs 為節點Node2的ip(單臺主機) 或Node2節點的網段, 可參考為節點1生成密鑰對

3.2. 啟動node1

## 啟動wireguardwg-quick up wg0

查查啟動是否成功,

啟動成功后, 使用ifconfig查看, 應該會多出一塊wg0的網卡.

使用wg命令可用查看到wireguard的當前狀態.

如果要重啟, 使用如下命令組合

## 關閉wireguardwg-quick down wg0## 啟動wireguardwg-quick up wg0

3.3. 設置為開機啟動

systemctl enable wg-quick@wg0

通過服務啟動wireguard

systemctl start wg-quick@wg0

查看服務狀態

systemctl start wg-quick@wg0

查看日志

journalctl -u wg-quick@wg0

3.4. 配置node2

在配置node2之前需要在節點2上安裝wireguard, 方法參照前面介紹的安裝方法

說明, 我的節點都是Linux主機, 而且是redhat系列主機
在windows, 安裝方法稍有不同, 具體請參考官網的安裝指南

創建配置文件/etc/wireguard/wg0.conf

[Interface]Address = 192.168.2.40PrivateKey = node2_private_keyDNS = 114.114.114.114# 服務端配置[Peer]PublicKey = node1_public_keyAllowedIPs = 192.168.2.0/24Endpoint = 1.1.1.1:8888    ## 1.1.1.1代表公網IPPersistentKeepalive = 25

說明: Address 是Node2的地址, 和之前配置的Node1處在同一個網段
PrivateKey: 為node2節點的私鑰
DNS: DNS服務器IP
PublicKey: 為Node1的公鑰
AllowedIPs: Node1節點所處網段, 如果只允許Node1節點連接該節點可用指定Node1的IP
Endpoint: 1.1.1.1 為公網IP, 替換成你自己的公網IP
PersistentKeepalive: keepalive 時間, 單位秒, 這是斷線后自動重連的關鍵.

3.5. 在Node2上啟動wireguard

啟動wireguard的方法跟在Node1上啟動wireguard的方法一樣

wg-quick up wg0

設置為開機啟動

systemctl enable wg-quick@wg0

4. 說明

本文原文位于鵬叔的技術博客空間 - 使用WireGuard內網穿透, 需要獲得最近更新及反饋問題請訪問原文.

5. 參考文檔

使用NPS搭建內網(穿透(保姆級教程)

Centos 7 安裝 Wireguard

WireGuard 教程:WireGuard 的工作原理

基于Wireguard組網技術的內網穿透教程


該文章在 2024/7/24 18:49:35 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved