Wireguard筆記(二) 命令行操作


目錄

Wireguard筆記(一) 節點安裝配置和參數說明
Wireguard筆記(二) 命令行操作
Wireguard筆記(三) lan-to-lan子網穿透和多網段並存

命令行操作

創建wg0網卡, 並設置wireguard參數

ip link add dev wg0 type wireguard
ip address add dev wg0 10.8.1.1/24
wg set wg0 listen-port 7777
wg set wg0 private-key /etc/wireguard/privatekey
wg set wg0 peer CbX0FSQ7W2LNMnozcMeTUrru6me+Q0tbbIfNlcBzPzs= allowed-ips 192.168.20.0/24,10.8.1.2/32 endpoint networkB.company.com:8888
ip link set up wg0

配置完基礎參數后, 先保存設置

touch /etc/wireguard/wg0.conf
wg-quick save wg0

然后用wg-quick就可以開啟/關閉wg0網卡了

wg-quick down wg0
wg-quick up wg0

使用這種方式, wg-quick把大部分操作細節都封裝好了, 通過簡單的命令可以創建網卡, 分配地址和修改系統路由表.

如果你需要將wireguard設置為服務, 讓它開機自動啟動wg0, 可以通過這個命令

systemctl enable wg-quick@wg0 --now

命令行操作(使用wireguard-go)

對於某些環境不適合用原生wireguard的, 可以使用wireguard-go代替, wireguard-go只是用於創建wg網卡, 其他的命令還是用wg來完成的. 以下是純命令行的操作.

wireguard-go創建網口, 配置IP

# 使用wireguard-go生成虛擬網卡
sudo ./wireguard-go wg0
  # 查看創建的網卡
  ip link
  ip link show dev "wg0"
  # 刪除創建的網卡
  sudo ip link del wg0

# 給虛擬網卡添加地址
sudo ip address add dev wg0 10.253.0.4/24
sudo ip -4 address add dev "wg0" "10.253.0.4/24"
  # 刪除地址
  sudo ip addr del dev wg0 192.168.0.193/24

wg對wg0進行配置

# 生成服務端的公私鑰
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

# 設置監聽端口
sudo wg set wg0 listen-port 50001
# 設置節點私鑰
sudo wg set wg0 private-key /etc/wireguard/privatekey
# 查看wg狀態
sudo wg
# 或者
sudo wg show

# 查看wg配置 - 這個會輸出格式化的配置信息, 可以存為conf文件
sudo wg showconf wg0
# 從wg0.conf.bak載入配置到wg0, 會覆蓋當前配置, 且重置當前的連接
sudo wg setconf wg0 wg0.conf.bak
# 從wg0.conf.bak的配置添加到wg0
sudo wg addconf wg0 wg0.conf.additional
# 從wg0.conf.bak中讀取配置, 將變化部分應用到wg0, 不如setconf高效, 但是不會影響到當前存在的會話
sudo wg syncconf wg0 wg0.conf.additional


# 啟動虛擬網卡
sudo ip link set dev wg0 up
  # 斷開網卡
  sudo ip link set dev wg0 down

# 添加遠程節點 (此時遠程節點也要添加對應此節點的配置)
sudo wg set wg0 peer PasdfeghBb+kadem7JVtbjh1oRv75Ysc123451iSnM= allowed-ips 192.168.36.0/24,10.253.0.0/24 endpoint 114.104.11.76:50001 persistent-keepalive 30
  # ping檢查(遠程節點IP), 遠程也ping此節點檢查
  ping 10.253.0.1
  # 刪除遠程節點
  sudo wg set <interface> peer <key> remove

配置路由和iptables

# 增加本地路由至虛擬網卡
sudo ip -4 route add "192.168.36.0/24" dev "wg0" table "$TABLE"
sudo ip route add 192.168.36.0/24 dev wg0
  # 刪除路由
  sudo ip route del 192.168.36.0/24 dev wg0
  # ping檢查
  ping 192.168.36.109

# 增加iptables規則(如果需要從遠程訪問本地子網)
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -A FORWARD -o wg0 -j ACCEPT
iptables -A -t nat POSTROUTING -o eth0 -j MASQUERADE
ip6tables -A FORWARD -i wg0 -j ACCEPT
ip6tables -A FORWARD -o wg0 -j ACCEPT
ip6tables -A -t nat POSTROUTING -o eth0 -j MASQUERADE

  # 對應的刪除命令
  iptables -D FORWARD -i wg0 -j ACCEPT
  iptables -D FORWARD -o wg0 -j ACCEPT
  iptables -D -t nat POSTROUTING -o eth0 -j MASQUERADE
  ip6tables -D FORWARD -i wg0 -j ACCEPT
  ip6tables -D FORWARD -o wg0 -j ACCEPT
  ip6tables -D -t nat POSTROUTING -o eth0 -j MASQUERADE


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM