局域网组建(一) 远程办公实现 — WireGuard组建跨地域局域网(AlmaLinux+Docker)
远程访问局域网设备通常采用内网穿透或VPN隧道。WireGuard是一种采用UDP协议的新型VPN技术。WireGuard提供的是节点与节点的网络连接形式,除了可以实现传统VPN以服务器为网关的星型拓扑结构,还可以节点与任意其他节点进行连接,实现节点间的全互联,解决了单一网关导致的网络瓶颈。
AlmaLinux为CentOS停止维护后的继承者,是Red Hat的下游版本,拥有10年生命周期。本次实验采用AlmaLinux安装Docker来实现WireGuard的部署。
目录
一、AlmaLinux配置
1.配置阿里云镜像源
2.更新系统应用
3.配置密钥远程登录
二、安装Docker
1. 方法一:通过宝塔面板安装
2. 方法二:终端直接安装
三、安装WireGuard(Place1/wg-access-server项目)
1. 安装
2. 检查容器运行状态
3. 端口放通
4. 访问管理面板
四、客户端配置
1. 配置信息生成
2. 导入配置信息
3. 连接建立:
五、容器运行异常排查
1. 查看Docker容器运行日志:
2. 错误处理
WireGuard跨区域组网需要至少一台机器具有公网IP或在局域网内组网。如果仅有一台机器具备公网IP(可为云服务器),想要组建跨地域局域网,只能采用单一网关的星型拓扑结构,本实验将演示该情况下的跨地域组网。
一、AlmaLinux配置
1.配置阿里云镜像源
配置方法参考:almalinux镜像源配置 - 阿里巴巴开源镜像站
2.更新系统应用
终端内执行以下命令:
dnf upgrade -y
reboot
3.配置密钥远程登录
1)密钥文件产生
法一:云服务提供商后台管理面板直接生成.pem的密钥文件。将.pem文件Load到puttygen.exe软件中。复制“Public key for pasting into OpenSSH authorized_keys file”文本框里的公钥。点击Save private key,保存.ppk的私钥文件用于后续登录。
法二:打开puttygen.exe软件,密钥类型选择RSA,点击Generate按钮,产生过程中不停晃动鼠标直至产生完毕。复制“Public key for pasting into OpenSSH authorized_keys file”文本框里的公钥。点击Save private key,保存.ppk的私钥文件用于后续登录。
2)Putty密钥登录
① 配置登录信息
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
② 点击Open按钮即可登录。
二、安装Docker
1. 方法一:通过宝塔面板安装
1)防火墙配置:宝塔面板从CentOS 7开始只支持firewalld防火墙。关闭iptables并开启firewalld。
systemctl stop iptables
systemctl disable iptables
systemctl start firewalld
systemctl enable firewalld
2)面板安装:
安装方法:宝塔面板下载和安装
复制CentOS安装脚本进行安装即可。
【注意】需在服务器安全组放通宝塔面板管理页面端口
3)Docker安装:登录面板后,前往 软件商店,安装 Docker管理器。
后续Docker的使用可以直接在宝塔面板内可视化管理,也可在终端中使用docker命令管理。
2. 方法二:终端直接安装
官方指导文档:Install Docker Engine on CentOS | Docker Documentation
1)启动防火墙
systemctl stop iptables
systemctl disable iptables
systemctl start firewalld
systemctl enable firewalld
2)安装docker
yum install -y yum-utils
yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
3)启动docker
systemctl start docker
systemctl enable docker
4)docker管理常用命令
# 查看所有容器
docker ps -a
# 删除指定的容器(<dockerID>替换实际的容器ID)
docker rm <dockerID>
# 查看镜像
docker images
# 删除指定的镜像(<imageID>替换实际的镜像ID)
docker rmi <imageID>
# 查看前1000行日志(法1)
docker logs --tail=1000 <dockerID>
# 查看前1000行日志(法2)
cat /var/lib/docker/containers/<dockerID>/<dockerID>-json.log
# 清除日志
cat /dev/null > /var/lib/docker/containers/<dockerID>/<dockerID>-json.log
三、安装WireGuard(Place1/wg-access-server项目)
项目地址:https://github.com/Place1/wg-access-server
配置说明:Configuration - wg-access-server
1. 安装
终端中运行以下命令:
docker run -d \--cap-add NET_ADMIN \--device /dev/net/tun:/dev/net/tun \-v wg-access-server-data:/data \-e "WG_ADMIN_USERNAME=admin" \-e "WG_ADMIN_PASSWORD=123456" \-e "WG_WIREGUARD_PRIVATE_KEY=xxxxxxxx" \-e "WG_PORT=51821" \-e "WG_WIREGUARD_PORT=51820" \-e "WG_VPN_CIDR=10.0.32.0/24" \-e "WG_VPN_ALLOWED_IPS=0.0.0.0/0, ::/0" \-e "WG_LOG_LEVEL=info" \-e “WG_VPN_GATEWAY_INTERFACE=eth0” \-p 51821:51821/tcp \-p 51820:51820/udp \--restart unless-stopped \--privileged=true \place1/wg-access-server
【配置说明】(红色部分对应的配置必须修改)
① 14~15行配置端口映射,:前为宿主机端口,:后为容器内端口。14行为管理面板的TCP端口,15行为WireGuard的UDP端口。宿主机端口需在服务器安全组放通。
② 16行用于开机自启动容器
③ 5~13行配置容器的环境变量,5~6行配置管理面板的用户名密码,7行为服务器私钥(可安装WireGuard的windows客户端,新建空隧道自动产生一个)。8~9行为容器内的管理面板TCP端口、WireGuard的UDP端口(建议此端口容器内和宿主机一致,否则在Web面板生成的客户端配置文件端口号是容器内的,需要手动改为宿主机的才能正确连接)。10行为客户端IP地址段。11行为允许访问的目标IP段。12行为全局日志级别。13行为WireGuard网关流量转发接口,需更改为宿主机的外网接口(可在终端内执行ifconfig命令,来查看外网接口名)。
2. 检查容器运行状态
docker ps -a
如果运行状态中为Up,则表明容器运行正常。如果运行状态中一直为Restarting,则需要进一步从日志中检查错误原因。(详见 五、容器运行异常排查)
3. 端口放通
在服务器安全组中,放通TCP和UDP端口。本例中WireGuard管理面板为TCP (51821),WireGuard为UDP (51820)。
4. 访问管理面板
管理面板地址:http://服务器公网IP:管理面板TCP端口号(本例端口为51820)
输入配置的用户名和密码登入管理面板(本例为admin/123456)
四、客户端配置
WireGuard应用下载:https://www.wireguard.com/install/
1. 配置信息生成
在WireGuard管理面板中,输入设备名称后点击 “Add” 添加设备。
2. 导入配置信息
电脑客户端直接下载配置文件,在WireGuard应用内新建隧道,将配置文件导入至隧道。手机客户端直接扫码即可添加节点。
![](/assets/blank.gif)
![](/assets/blank.gif)
3. 连接建立:
1)点击 连接 按钮即可使能当前节点。
2)在Windows系统中打开CMD命令提示符,通过Ping其他节点,如果Ping正常即表明连接正常(注意:如果Ping的是Windows节点,则需要正确配置Windows系统防火墙或暂时关闭)。
![](/assets/blank.gif)
五、容器运行异常排查
1. 查看Docker容器运行日志:
1)记录对应容器的ID
docker ps -a
![](/assets/blank.gif)
2)查看docker日志,根据日志错误情况进行解决。
docker logs <dockerID>
2. 错误处理
下面仅提供一种错误的解决办法,其他错误自行查找资料。
错误:exit status 3: iptables v1.8.3 (legacy): can't initialize iptables table `filter': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.
解决:升级Linux Kernel内核。
参考:centos上docker无法启动 | 宋祎超
内核的阿里云镜像:linux-kernel安装包下载_开源镜像站-阿里云
步骤:
1)获取内核文件
找到合适版本或最新版本:https://mirrors.aliyun.com/linux-kernel/v5.x/linux-5.19.4.tar.gz
终端执行:
wget https://mirrors.aliyun.com/linux-kernel/v5.x/linux-5.19.4.tar.gz
tar -xvf linux-5.19.4.tar.gz
2)配置内核选项
cd linux-5.19.4
make menuconfig
按《参考》链接内容的说明设置好配置选项并保存。
如果提示Unable to find the ncurses package. 则按照提示安装ncurses-devel 或 libncurses-dev其中一个即可。
3)编译模块(约需要2小时)
make clean
make modules -j 8 # 8核编译
4)安装模块
make modules_install
【提示】如果安装模块时,出现以下错误,则需要检查编译是否顺利完成。
sed: can't read modules.order: No such file or directory
make: *** [Makefile:1478: __modinst_pre] Error 2
可留意编译过程中的错误输出信息,或者重新执行make modules -j 8进行模块编译,将会直接打印错误信息。如果编译的错误信息为:
make[1]: *** No rule to make target 'certs/rhel.pem', needed by 'certs/x509_certificate_list'. Stop.
则编辑 linux-5.19.4 目录里的 .config 文件:
vim .config
在vim编辑器内,查找并注释掉以下内容:
#CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem"
#CONFIG_DEBUG_INFO_BTF=y
保存后输入make modules -j 8重新编译即可。执行命令后如有选项则直接回车保持默认,直到屏幕显示开始编译。
5)编译并安装内核
make bzImage
make install
6)生效配置
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
7)查看内核版本是否已更新
uname -r
8)查看docker容器是否已经处于up状态
docker ps -a
局域网组建(一) 远程办公实现 — WireGuard组建跨地域局域网(AlmaLinux+Docker)相关推荐
- 要在某一房间中两台计算机之间,关于局域网、广域网和互联网的组建和因特网的接入,回答下列问题。要在某一房间中两台计算机之间实现网络通信,下列方法不可行的是...
集市交易中的叫卖声和敲击声是最一种特殊的民俗现象,局域建和接入间中计算机之间实其共同特点为 网广网为什么有人会产生心理困扰() 牙周组织在受到异常的力作用其损伤一直存在,域网因特房但也会有组织修复 ...
- 思科模拟器小型局域网组建(4子网,RIPV2组建)
思科模拟器小型局域网组建(4子网,RIPV2组建) Windows下载模拟器 连接设备 配置路由 配置电脑 总结 Windows下载模拟器 我在如下文章中下载并按照文章提示安装 链接: 思科模拟器的简 ...
- wireguard 组多地局域网
wireguard 组多地局域网 现公司分布各地,欧洲,美洲,越南,香港,台湾,日本,国内,通过国际专线费用又高,而是用ipsec又有速度和其他的限制. 特别是国内分公司太多,专线费用也是很庞大的一笔 ...
- YTFS——跨地域的分布式存储(WAN存储)
Ceph/HDFS等传统分布式存储属于中心化存储,整个存储网络都位于同一机房,能提供服务器级别的故障域隔离,但无法应对机房甚至城市级别的故障,包括但不限于停电.断网.地震.火灾.911式恐怖袭击.天津 ...
- UCloud与NTT达成合作,提供可靠跨地域混合云服务
近日,UCloud宣布与NTT Communications东亚地区总部NTT Com Asia (以下简称"NTT Com Asia") 达成合作伙伴协议.双方将发挥各自优势,通 ...
- Harbor: 跨数据中心复制Docker镜像的开源实现
2019独角兽企业重金招聘Python工程师标准>>> Harbor: 跨数据中心复制Docker镜像的开源实现 博客分类: docker VMware公司3月份开源了企业级Regi ...
- 企业网络带宽需求和跨地域网络连接的优化
SD-WAN仍然是一项相对年轻的技术,虽然已取得重大进展,但还有很长的路要走,属于SD-WAN的市场远未稳定下来. 一项调查发现,36%的受访者表示,由于网络基础架构和性能任务的复杂性不断提高,他们正 ...
- 局域网上传文件到服务器很慢,win10局域网内传文件很慢怎么办_win10局域网内文件传输很慢如何处理-win7之家...
在使用win10系统的过程中,相同的环境下我们可以将电脑设置成局域网模式,这样就能够进行文件的传输,非常方便,可是最近有用户发现自己的win10系统局域网内传送文件很慢,那么win10局域网内传文件很 ...
- DLA实现跨地域、跨实例的多AnalyticDB读写访问
介绍 实时数据仓库ADB(AnalyticDB)云产品:https://www.aliyun.com/produc... 数据湖分析服务DLA(Data Lake Analytics)云产品:http ...
最新文章
- 如何用ABAP代码读取CDS view association的数据
- Deep Learning | 深度学习介绍与基本概念
- php推荐引擎算法,推荐系统,第 2 部分: 开源引擎简介
- Winsock—I/O模型之选择模型(一)
- mysql创建表的时候,字段尽量不要为NULL
- 马斯克:人脑“带宽”有限,需要用人工智能加持提高连接速度
- iOS开发实战小知识点(五)——获取JS meta异常
- Node.js 连接 MySQL 插入 TEXT 类型报错问题
- 再谈angularjs DI(Dependency Injection)
- c语言编程常见问题解答,C语言编程常见问题解答之常用函数的包含文件
- 红旗linux 装xp,XP下硬盘安装红旗LINUX
- 佳士得于5月19日至27日以NFT形式拍卖安迪·沃霍尔作品
- lisp型材库_基于Visual Lisp的面向对象零件库的开发
- 2021“智荟杯”浦发百度高校极客挑战赛——比赛总结
- 车联网智能终端GB/T 32960国标协议规范 、国标新能源车联网终端GB/T32960标准T-BOX应用
- Pygame游戏编程
- 尼日利亚通货膨胀加剧和MogaFX外汇短缺加剧贬值投机
- 计算机电源选平衡,电脑里选择电源计划哪个好
- 数模备战——基础知识笔记
- 小米会成为三星没落的因素吗?
热门文章
- linux实验下载,linux实验linux实验.doc
- 《计算机视觉》集大网课学习笔记【6】
- 为人处世之道_金玉良言
- 慕课网:C++ 数据结构
- 计算机基础考核方案,计算机应用基础考核实施方案
- 芯旺微 chipon 型号KF32A156的flash驱动flash driver放置在ram的操作方式
- Android 抖音爱心动画,Android动画 - 仿抖音加载动画
- Nand Flash驱动, ECC, MTD, FTL, 文件系统
- 微信(小程序),怎么制作一个能够获取 “ 空气质量、温度、湿度、气压、风向 ” 等的【天气模块】
- java cpu监控_如何在Java中监视计算机的CPU,内存和磁盘使用情况?