avatar
文章
291
标签
863
分类
134

开发
  • 大前端
  • 人工智能
  • 小程序
  • 桌面应用
  • 游戏开发
服务器&网络
  • 服务器
  • 网络
归档
标签
仰观苍穹思环宇
搜索
开发
  • 大前端
  • 人工智能
  • 小程序
  • 桌面应用
  • 游戏开发
服务器&网络
  • 服务器
  • 网络
归档
标签

使用云服务器搭建WireGuard VPN实现外网访问

发表于2024-11-05|更新于2024-11-18|网络
linuxWireGuardVPN外网运营商监管运营商拦截
cover of previous post
上一篇
CSS实现鼠标悬浮版块上去边框渐变效果以及版块悬浮边框动画渐变效果
cover of next post
下一篇
上下文在计算机编程中的重要性
相关推荐
cover
2024-06-06
Fail2ban的功能和特性
cover
2024-05-27
Linux 服务器日常巡检脚本及常见问题解决方案
cover
2024-07-02
Linux压缩命令tar之排除不需要的文件或者目录(--exclude)
cover
2023-03-24
Linux基本磁盘
cover
2024-06-24
linux中使用find命令列出最近修改的文件并格式化输出等各种细节和技巧详细说明
cover
2024-07-10
linux服务器运维相关的命令备忘速查
avatar
鸢尾花序
文章
291
标签
863
分类
134
关注我们
目录
  1. 1. 场景背景
  2. 2. 配置思路
  3. 3. 前期准备
  4. 4. 安装和配置 WireGuard
    1. 4.1. 1. 安装 WireGuard
      1. 4.1.1. 1. 使用 systemctl 服务管理器设置开机自启
      2. 4.1.2. 2. 验证设置是否生效
      3. 4.1.3. 3. 手动重启测试
      4. 4.1.4. wireguard的重启命令如下:
      5. 4.1.5. 注意
    2. 4.2. Windows [7, 8.1, 10, 11, 2008R2, 2012R2, 2016, 2019, 2022 – v0.5.3]
    3. 4.3. macOS [app store – v1.0.16]
    4. 4.4. Ubuntu
    5. 4.5. Android [play store – v1.0.20231018 & direct apk file – v1.0.20231018]
    6. 4.6. iOS [app store – v1.0.16]
    7. 4.7. Debian [module – v1.0.20220627 & tools – v1.0.20210914]
    8. 4.8. Fedora [tools – v1.0.20210914]
    9. 4.9. Mageia [tools – v1.0.20210914]
    10. 4.10. Arch [module – v1.0.20220627 & tools – v1.0.20210914]
    11. 4.11. OpenSUSE/SLE [tools – v1.0.20210914]
    12. 4.12. Slackware [tools – v1.0.20210914]
    13. 4.13. Alpine [tools – v1.0.20210914]
    14. 4.14. Gentoo [module – v1.0.20220627 & tools – v1.0.20210914]
    15. 4.15. Exherbo
    16. 4.16. NixOS [module – v1.0.20220627 & tools – v1.0.20210914]
    17. 4.17. Nix on Darwin [userspace go – v0.0.20230223 & tools – v1.0.20210914]
    18. 4.18. OpenWRT [tools – v1.0.20210914]
    19. 4.19. Oracle Linux 8 [UEK6 & tools – v1.0.20200827 – out of date]
    20. 4.20. Red Hat Enterprise Linux 8
    21. 4.21. CentOS 8
    22. 4.22. Oracle Linux 7 [UEK6 & tools – v1.0.20200827 – out of date]
    23. 4.23. Red Hat Enterprise Linux 7
    24. 4.24. CentOS 7
    25. 4.25. FreeBSD
    26. 4.26. OpenBSD [tools – v1.0.20210914]
    27. 4.27. 2. 生成密钥对
      1. 4.27.1. 其他注意事项
      2. 4.27.2. 如果取消了wireguard里面的wg0.conf文件的这两个命令(PostUp和PostDown),那么应该如何在firewalld那边配置呢?
        1. 4.27.2.1. 1. 配置端口转发规则
        2. 4.27.2.2. 2. 启用 IP 转发
        3. 4.27.2.3. 3. 重载 firewalld 配置
        4. 4.27.2.4. 4. 验证 firewalld 配置
        5. 4.27.2.5. 为什么需要 --add-interface=wg0?
      3. 4.27.3. 如何添加?
        1. 4.27.3.1. 验证
        2. 4.27.3.2. 总结:
    28. 4.28. 2. 客户端配置
      1. 4.28.1. 客户端配置文件示例
      2. 4.28.2. 设置客户端 AllowedIPs 以指定流量走 VPN
    29. 4.29. 3. 启用伪装和端口转发,以及IP转发
      1. 4.29.1. 目前服务端IP是:10.0.2.1,这台是服务端,能访问google,而客户端机器分别是台式机一台,IP地址是10.0.2.4,不能访问google,手机IP地址是10.0.2.5,不能访问谷歌,目前组网(使用中继模式)是成功的,他们三者之间能够相互ping得通,那么现在如何实现在手机上或者在windows客户机10.0.2.4上访问google呢?
        1. 4.29.1.1. 配置步骤
        2. 4.29.1.2. 开启 IP 转发(这个很重要,不开启转发,流量就没法通过VPN进行转发)
        3. 4.29.1.3. 步骤 1:启用 Masquerading
        4. 4.29.1.4. 步骤 2:配置允许的端口
        5. 4.29.1.5. 步骤 3:重启firewalld以应用配置
        6. 4.29.1.6. 验证配置
        7. 4.29.1.7. 检查和调试
        8. 4.29.1.8. 在 firewalld 中配置等效规则
        9. 4.29.1.9. 1. 开启 IP 转发(这个很重要,不开启转发,流量就没法通过VPN进行转发)
        10. 4.29.1.10. 2. 在 firewalld 中添加规则
      2. 4.29.2. 课外小知识:
        1. 4.29.2.1. 请问: sudo firewall-cmd --permanent --add-masquerade和sudo firewall-cmd --permanent --zone=public --add-masquerade这个是一个意思吗?
        2. 4.29.2.2. 区别总结
        3. 4.29.2.3. 注意事项
    30. 4.30. 4. 启用 IP 转发
    31. 4.31. 5. 配置客户端(手机)
    32. 4.32. 6. 启动 WireGuard
    33. 4.33. 验证结果
  5. 5. 可能遇到的问题和解决办法,以及常见知识说明
    1. 5.0.1. 确认 IP 转发设置
    2. 5.0.2. DNS 解析
    3. 5.0.3. 重启服务并测试连接
  6. 5.1. IP转发(net.ipv4.ip_forward)是必须要设置的吗?
    1. 5.1.1. 如何配置net.ipv4.ip_forward
    2. 5.1.2. 为什么net.ipv4.ip_forward很重要?
  7. 5.2. Endpoint字段很关键,特别是在wireguard组网使用中继服务器-客户端组网模式
    1. 5.2.0.1. 为什么Endpoint字段很重要?
    2. 5.2.0.2. Endpoint字段在中继服务器模式的作用
    3. 5.2.0.3. 配置示例
    4. 5.2.0.4. 需要注意的几点
    5. 5.2.0.5. 总结
  8. 5.2.1. 来自客户端的疑问
  9. 5.2.2. 设置客户端 AllowedIPs 以指定流量走 VPN
  • 6. 整个流程的拓扑图仅作参考
    1. 6.1. 方式一:如果客户端设置的AllowedIPs是0.0.0.0/0这个方式,那么类似如下拓扑图。
  • 7. 更新后的流程说明
    1. 7.1. 方式二:我们来一个更加细节的,比如某个客户端希望访问外网某些服务才走VPN流量,否则都走本地流量
  • 8. 更新后的逻辑说明
  • 9. 总结
  • 遇到了一些政策上面的问题(如果哪一天不通了,可以继续往下看,可能是运营商拦截了)
    1. 0.0.0.1. 1. 尝试更换海外服务器
    2. 0.0.0.2. 2. 更换端口和协议
    3. 0.0.0.3. 3. 启用 WireGuard Keepalive
    4. 0.0.0.4. 4. 使用 Obfuscation 混淆技术
    5. 0.0.0.5. 5. 查看运营商的限制模式
  • 0.0.1. 6. 测试本地网络是否被限制
  • 0.0.2. 解决办法如下:
    1. 0.0.2.1. 1. 检查 IP 转发设置
    2. 0.0.2.2. 2. 检查防火墙规则和 NAT 配置
    3. 0.0.2.3. 3. WireGuard 配置:检查 AllowedIPs
    4. 0.0.2.4. 4. 检查客户端的配置
    5. 0.0.2.5. 5. PersistentKeepalive 设置
    6. 0.0.2.6. 6. 路由表检查
    7. 0.0.2.7. 7. 测试和排查
  • 0.1. 笔者的一些建议
    1. 0.1.1. 1. 路由表检查
    2. 0.1.2. 2. 防火墙设置
    3. 0.1.3. 3. 确认 IP 转发已启用
    4. 0.1.4. 4. 检查 WireGuard 接口状态
    5. 0.1.5. 5. 测试客户端连接
    6. 0.1.6. 6. 进一步排查
      1. 0.1.6.1. 指令解释
      2. 0.1.6.2. 是否必须添加这些规则
      3. 0.1.6.3. 何时不需要这些指令
      4. 0.1.6.4. 测试建议
  • 1. 我发现添加了PostUp 和 PostDown,如果防火墙关闭了,重启wg0.conf会显示报错信息,我觉得尽量不要在wg0.conf配置PostUp 和 PostDown是一个很好的选择,对吗?
    1. 1.0.1. 建议
  • 2. 如果取消了wireguard里面的wg0.conf文件的这两个命令(PostUp和PostDown),那么应该如何在firewalld那边配置呢?
    1. 2.0.1. 1. 配置端口转发规则
    2. 2.0.2. 2. 启用 IP 转发
    3. 2.0.3. 3. 重载 firewalld 配置
    4. 2.0.4. 4. 验证 firewalld 配置
    5. 2.0.5. 等效的 firewalld 命令
      1. 2.0.5.1. 1. 添加永久转发规则
      2. 2.0.5.2. 2. 移除永久转发规则
      3. 2.0.5.3. 刷新 firewalld
      4. 2.0.5.4. 说明
  • 3. 因为我使用IP转发导致中继服务器不能ping通客户机了,应该是政策原因,运营商监管了我的网络进行了相关的屏蔽
    1. 3.0.1. 1. 降低流量特征显著性
    2. 3.0.2. 2. 使用加密和混淆流量特征
    3. 3.0.3. 3. 调整网络拓扑
    4. 3.0.4. 4. 启用其他 VPN 协议进行多层封装
    5. 3.0.5. 5. 咨询更合适的 VPN 提供商或服务器
  • 4. 如何避免让运营商屏蔽和拦截呢?
    1. 4.0.1. 1. 使用非标准端口
    2. 4.0.2. 2. 启用数据混淆
    3. 4.0.3. 3. 将 WireGuard 流量伪装成 HTTPS 流量
    4. 4.0.4. 4. 使用 TCP 传输
    5. 4.0.5. 5. 更换 IP 或使用 CDN
    6. 4.0.6. 6. 使用其他隧道协议配合 WireGuard
    7. 4.0.7. 7. 定期更换端口和 IP
    8. 4.0.8. 8. 检测运营商 QoS 限制
    9. 4.0.9. 注意事项
  • 5. 是不是说只要是大陆客户端通过这个方式访问外网,都是有可能被限制?如果我换另外一个服务器来做中继(比如bluehost服务器),那么也会出现类似被屏蔽的问题吗?
  • 最新文章
    如何实现打字与旋转飞入效果:一步一步指导
    如何实现打字与旋转飞入效果:一步一步指导2024-12-06
    如何实现一个逐字显示的动态打字效果,并保持原始文字不受影响
    如何实现一个逐字显示的动态打字效果,并保持原始文字不受影响2024-12-06
    如何在WordPress使用WooCommerce添加Buy Now按钮并直接跳转到结算页面
    如何在WordPress使用WooCommerce添加Buy Now按钮并直接跳转到结算页面2024-12-04
    SVG 动态环形背景效果实现与应用场景分析
    SVG 动态环形背景效果实现与应用场景分析2024-12-03
    前端开发与后端数据分析展示的完整解决方案(Vis-Network和Networks的选择)
    前端开发与后端数据分析展示的完整解决方案(Vis-Network和Networks的选择)2024-12-03
    颜色切换效果实现——CMYK背景色切换思路
    颜色切换效果实现——CMYK背景色切换思路2024-12-03
    实现周期性背景渐变滚动效果的HTML和CSS代码
    实现周期性背景渐变滚动效果的HTML和CSS代码2024-12-03
    设置wordpress网站文件和文件夹的权限
    设置wordpress网站文件和文件夹的权限2024-12-03
    ©2022 - 2024 By 鸢尾花序
    搜索
    数据库加载中