zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    JZOJ 3845. 简单题(simple)
    JZOJ 3844. 统计损失(count)
    JZOJ 3843. 寻找羔羊(agnus)
    JZOJ 3833. 平坦的折线
    JZOJ 1956. 矩形
    JZOJ 3832. 在哪里建酿酒厂
    mysql 语法一 :case when详解
    阿里云推荐码
    redis配置文件详解(转)
    压力测试工具 webbench总结
  • 原文地址:https://www.cnblogs.com/milton/p/15339898.html
Copyright © 2011-2022 走看看