CRMMC的个人博客
  • near_me
    首  页
  • inbox
    归  档
    keyboard_arrow_down
    view_week
    分  类
    keyboard_arrow_down
    layers
    页  面
    keyboard_arrow_down
  • rss_feed
    R S S
  • description 文  章
    4
  • textsms 评  论
    0
  • 苦逼苦逼
    1台VPS的多个IPV6一对一分配给对台不同的无IPV6的VPS使用

    access_time
    brush 327个字
    whatshot 303 ℃

    上一次我实现了3个不同地方的VPS的组网,但是CloudCone的服务器是免费送3个IPV6地址的,单个主机要3个IPV6对我来说多了,但是我的3台VPS中只有一台有IPV6,而且还是3个IPV6,于是我想着怎么把这3个IPV6地址分配给3台VPS,使它们都拥有自己的“独立”的IPV6地址

    VPS1和VPS2无公网IPV6,有公网IPV4
    VPS3拥有3个公网IPV6,有一个公网IPV4
    3个公网IPV6地址分别为:

    IPV6_1
    IPV6_2
    IPV6_3

    在前一篇文章中,我使用了Wireguard让3台VPS内网IPV4/6都互联了,他们的IPV6为:

    VPS1: WG_IPV6_1
    VPS2: WG_IPV6_2
    VPS3: WG_IPV6_3

    前提条件:
    首先,VPS1,2,3用Wireguard成功互联,且VPS1,VPS2的所有IPV6流量都通过Wireguard转发到VPS3,wireguard的内网IPV6可以互相ping通
    其次,我使用了ufw,所以要修改/etc/default/ufw的FORWARD DEFAULT调成ACCEPT才能允许FORWARD流量通过你的自定义iptables规则,不过最好在自定义规则的最后加入DROP规则确保安全,不符合你自定义规则的转发请求都丢弃掉

    很简单,我们使用ip6tables进行BNAT(静态地址转换),让从WG_IPV6_1的数据包,修改地址为IPV6_1后从VPS3出,让VPS3接受到的IP为IPV6_1的数据包全部发往WG_IPV6_1,这样就实现了IPV6_1给WG_IPV6_1独立使用

    ip6tables -t nat -A PREROUTING -d IPV6_1 -i eth0 -j DNAT --to-destination WG_IPV6_1
    ip6tables -t nat -A POSTROUTING -s WG_IPV6_1 -o eth0 -j SNAT --to-source IPV6_1

    这样就完成了,很简单,要记得开内核的ipv6_forward,不过前面配置wireguard的时候已经配置过开启内核包转发了

    #如无特别声明,该文章均为 苦逼苦逼 原创,转载请遵循 署名-非商业性使用 4.0 国际(CC BY-NC 4.0) 协议,即转载请注明文章来源。
    #最后编辑时间为: 2022 年 09 月 29 日





    关于 DreamCat

    主题名称:DreamCat | 版本:2.8.221001(LTS)

    主题开发:HanFengA7 | TeddyNight | Dev-Leo | CornWorld | WhiteBearcn | DFFZMXJ

    Designed by HanFengA7 Power by Typecho

    Copyright © 2015-2025 by LychApe All rights reserved!

    加我的QQ
    加我的微博
    加我的支付宝
    加我的微信