目录

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

Wireguard笔记(二) 命令行操作的更多相关文章

  1. Zookeeper笔记之命令行操作

    $ZOOKEEPER_HOME/bin下的zkCli.sh进入命令行界面,使用help可查看支持的所有命令: 一.节点相关操作 create [-s] [-e] path data acl creat ...

  2. git 命令行操作(之前整理在有道的笔记)

    1. 常用命令 切换分支 git checkout [branch_name] 检出分支 git clone [git_URL] 更新分支 git pull origin [branch_name] ...

  3. 【分析笔记】全志方案通过命令行操作 GPIO 口(带源码分析)

    前言说明 在项目开发初期,很经常会需要临时操作某个GPIO来验证某些功能,可以通过编写一个简单的驱动程序来操作,但更方便的是可以通过命令行直接操作 GPIO ,这样不需要经过编写代码.编译驱动.推入文 ...

  4. 命令行操作svn和git和git

    前几天在写代码的时候电脑突然坏掉,老大交代的任务没完成,非常痛恨自己用svn或者git保存代码,相信很多程序员遇到过,硬盘坏掉,存在硬盘中的代码丢失,无法找回的问题,svn和git可谓程序员界的福音, ...

  5. SVN的命令行操作

    最近在进行svn二次开发,使用的是svnkit.看了很多svnkit的api,渐渐发现都是和SVN的命令行操作对应的.顺便研究一下svn的命名行操作. 1.将文件checkout到本地目录: 基本命令 ...

  6. Hadoop系列006-HDFS概念及命令行操作

    本人微信公众号,欢迎扫码关注! HDFS概念及命令行操作 一.HDFS概念 1.1 概念 HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件:其次,它是分布式的,由很多服务器联合起来实现其 ...

  7. Zookeeper(一)CentOS7.5搭建Zookeeper3.4.12集群与命令行操作

    一. 分布式安装部署 1.0 下载地址 官网首页: https://zookeeper.apache.org/ 下载地址: http://mirror.bit.edu.cn/apache/zookee ...

  8. HDFS分布式文件系统的常用命令行操作

    一.HDFS的客户端种类 1.网页形式  =>用于测试 网址为你的namenode节点的ip+50070的端口号,如: 192.168.50.128:50070 2.命令行形式 =>用于测 ...

  9. Kafka命令行操作及常用API

    一.Kafka命令行操作 1.查看当前集群已存在的主题 bin/kafka-topic.sh --zookeeper hd09-01:2181 --list 2.创建主题 bin/kafka-topi ...

  10. 【转帖】Linux命令行操作json神器jq

    Linux命令行操作json神器jq https://www.cnblogs.com/chenqionghe/p/11736942.html jq类似一个awk或grep一样的神器,可以方便地在命令行 ...

随机推荐

  1. Java21 + SpringBoot3集成Spring Data JPA

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  2. Makefile中的+=、:=、?=

    1.= "="是最普通的等号,然而在Makefile中确实最容易搞错的赋值等号,使用"="进行赋值,变量的值是整个makefile中最后被指定的值.不太容易理解 ...

  3. IBM java的分析工具(ga和ha)学习和整理

    IBM java的分析工具(ga和ha)学习和整理 背景 前几天学习了整理了 jca 工具 今天继续学习一下 ga工具 ga 工具主要是分析gclog相关. 可以很直观的进行gclog的分析和展示. ...

  4. [转帖]Oracle数据库中ITL详解

    首先说明这篇文章是转载的,原文地址:http://blog.sina.com.cn/s/blog_616b428f0100lwvq.html 1.什么是ITL ITL(Interested Trans ...

  5. [转帖]jmeter正则表达式应用-01篇

    如图所示 1.先新建一个login的http请求,然后再login的请求下新增一个正则表达式提取器,增加一个查看结果树查看结果 假如后端接口返回的数据为"{'msg': 'login suc ...

  6. 你应该知道的Hooks知识

    Hooks Hooks 是 React16.8 的新增特性,能够在不写 class 的情况下使用 state 以及其他特性. 动机 在组件之间复用状态逻辑很难 复杂组件变得难以理解 难以理解的 cla ...

  7. 京音平台-一起玩转SCRM之电销系统

    作者:京东科技 李良文 一.前言 电销是什么?就是坐席拿着电话给客户打电话吗?no no no,让我们一起走进京音平台之电销系统. 京音平台2020年初开始建设,过去的两年多的时间里,经历了跌宕起伏, ...

  8. TypeScript中Never类型和类型断言

    Never 类型 never类型表示:那些永不存在的值的类型. 例如:never类型是那些总是会[抛出异常]或根本就[不会有返回值的函数表达式]或[箭头函数表达式的返回值类型] never类型是任何类 ...

  9. diff算法是如何比较的,保证让你看的明明白白的!

    更新dom节点,最小力度去跟新 index.html <body> <h1>你好啊!</h1> <button id="btn">该 ...

  10. 加速tortoisegit的show log,减少等待时间

    KMSID: 81703 是否同步到KM: 是 是否原创: 是 标签: 游戏开发 允许复制: 是 允许评论: 是 允许导出PDF: 是 职业库分类KMS: 游戏-游戏程序 查看权限KMS:网易正式员工 ...