科技密码
记录网络点滴生活

KIMSUFI使用proxmox开【IPv4nat+IPv6】小鸡

昨天跟风入手了KIMSUFI-LE独服,配置和价格都很不错。唯一槽点是机器只有下行是G口,上行被限制在了100M。听说有几率中奖开到上下都是G口,还听说有几率IPV6的上下行都是G口(仅IPV4限速)。结果我开的机器2个奖都没中(′⌒`)。

写这个教程主要是给IPV6中奖者开小鸡一个参考。IPv4设置较简单,这里只设置了小鸡可以访问IPv4外网,并没有给小鸡分配端口转发(这类教程网上很多)。

我以前都是用proxmox【PVE】开小鸡,这次还是用它。

安装proxmox【PVE】系统

KIMSUFI后台装系统可以直接选择安装proxmox【PVE】系统,这里略过。

系统安装完毕后,会收到通知邮件。邮件内有个链接,打开该链接会看到服务器root密码。

等待安装系统时,您先在kimsufi控制台点IP按钮,查看分配给您的IPV6地址,并记录下来,一会要用。

母鸡配置

SSH连接独服。

配置独服虚拟网卡

使用命令vi /etc/network/interfaces修改文件 /etc/network/interfaces,按insert键进入编辑模式,在末尾添加如下内容(其中涉及到的IPV6地址要换成你自己的):

iface vmbr0 inet6 static
        address 2001:41d0:2:cf5a::1

auto vmbr1
iface vmbr1 inet static
        address 10.1.1.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up iptables -t nat -A POSTROUTING -s '10.1.1.1/24' -o vmbr0 -j MASQUERADE
        pre-down iptables -t nat -D POSTROUTING -s '10.1.1.1/24' -o vmbr0 -j MASQUERADE
iface vmbr1 inet6 static
        address 2001:41d0:2:cf5a::2/64
        post-up /sbin/ip -f inet6 route add 2001:41d0:2:cfff:ff:ff:ff:ff dev vmbr0
        pre-down /sbin/ip -f inet6 route del 2001:41d0:2:cfff:ff:ff:ff:ff dev vmbr0
        post-up /sbin/ip -f inet6 route add default via 2001:41d0:2:cfff:ff:ff:ff:ff
        pre-down /sbin/ip -f inet6 route del default via 2001:41d0:2:cfff:ff:ff:ff:ff
        post-up /sbin/ip -f inet6 neigh add proxy 2001:41d0:2:cf5a::2 dev vmbr1
        pre-down /sbin/ip -f inet6 neigh del proxy 2001:41d0:2:cf5a::2 dev vmbr1

        post-up /sbin/ip -f inet6 neigh add proxy 2001:41d0:2:cf5a::100 dev vmbr0
        pre-down /sbin/ip -f inet6 neigh del proxy 2001:41d0:2:cf5a::100 dev vmbr0

vmbr1是负责小鸡网络的虚拟网卡。2001:41d0:2:cfff:ff:ff:ff:ff是由分配给独服的IPV6地址转换而来,规则就是第3个冒号后面的后2位开始,全部换成ff2001:41d0:2:cf5a::2是给虚拟网卡vmbr1的地址,这个地址也将作为小鸡们的IPV6网关2001:41d0:2:cf5a::100是小鸡将要使用的地址。如果要建立多个小鸡,就增加末尾2行对应的小鸡地址的代码,增加后需要重启服务器。想立即生效可以手动在母机上运行一下(以小鸡IP尾号101为例):/sbin/ip -f inet6 neigh add proxy 2001:41d0:2:cf5a::101 dev vmbr0
另外还有个一劳永逸的方法,可以免去最后两行,以后再开多个小鸡也不再需要其他设置,点此了解使用NPD6自动配置IPV6子网

添加后按ESC键退出编辑模式,然后输入:wq,按ENTER键保存退出。然后运行下面命令使网卡配置生效:

/etc/init.d/networking restart

更新:如果您重启网络遇到错误,再运行systemctl status networking.service查看详情,如果错误信息里含有RTNETLINK answers: File existsifup: failed to bring up vmbr1,可能是你之前执行过错误的配置,导致错误的vmbr1残留在系统内,可运行下面的命令尝试解决:

ip addr flush dev vmbr1
/etc/init.d/networking restart

如果还有错误,就从文件/etc/network/interfaces中去掉下面两行,再执行上个步骤重启网络:

post-up /sbin/ip -f inet6 route add default via 2001:41d0:2:cfff:ff:ff:ff:ff
pre-down /sbin/ip -f inet6 route del default via 2001:41d0:2:cfff:ff:ff:ff:ff

配置独服sysctl.conf

使用命令vi /etc/sysctl.conf修改文件 /etc/sysctl.conf,按insert键进入编辑模式,在任意位置添加如下内容:

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.proxy_ndp = 1 
net.ipv6.conf.default.forwarding = 1 
net.ipv6.conf.vmbr0.autoconf=0 
net.ipv6.conf.vmbr0.accept_ra=2

某些教程还会有net.ipv6.bindv6only = 1。实测会导致服务器重启后网络故障,千万不要写这行。

添加后按ESC键退出编辑模式,然后输入:wq,按ENTER键保存退出。
执行命令sysctl -p,使配置生效。

例图

注意:截图中的net.ipv6.bindv6only=1是错的,要去掉,或者值设为0。旧图我懒得更换了。

开CT小鸡

通过https://你的IP:8006进入proxmox【PVE】WEB管理界面。使用用户root和密码登录。
这里以开CT小鸡为例。

下载小鸡模板

依次点击菜单localCT模板模板,在打开的界面中选择想要用的系统模板下载。

创建CT小鸡

点击网页右上角的创建CT
依次设置主机名密码模板;跟磁盘CPU内存网络;DNS信息。下面只贴出最关键的网络设置示例图,:

  1. 桥接选择刚才新建的那个虚拟网口vmbr1
  2. IPV4/CIDR设置小鸡的内网IP,后面要加/24。IPV4网关设置为vmbr1的IPV4地址,后面不带/24
  3. IPV6/CIDR设置小鸡的IPV6地址,后面要加/64。IPV6网关设置为vmbr1的IPV6地址,后面不带/64

另外,DNS选项卡可以不设置,保持默认即可。

设置完毕后等待系统创建小鸡,创建完毕后点左侧菜单的小鸡ID,然后点网页右上角启动按钮,就可以启动小鸡了。
控制台可进入小鸡界面,ping6一下试试。

KVM小鸡IPV4+IPV6设置

KVM小鸡在创建时选择网络桥接到vmbr1,其他的要在小鸡内部设置。
这个步骤较简单,直接上图。

PVE创建KVM小鸡时网络设置

KVM小鸡设置IPV4

KVM小鸡设置IPV6

IPV6连接小鸡远程桌面


后面如果再开小鸡,比方说使用IP2001:41d0:2:cf5a::101,开完小鸡后在母机里面执行一下下面代码,可以免重启使网络生效:

/sbin/ip -f inet6 neigh add proxy 2001:41d0:2:cf5a::101 dev vmbr0

KIMSUFI家的机器只要严格按照本文设置,基本可以确保小鸡内IPV4和IPV6都可以连接外网。小鸡也可以通过IPV6被外网访问。如要通过IPV4访问小鸡,需要在母机设置NAT端口转发,网上端口转发教程比较多,这里暂不讨论,只提供一个例子。若要通过IPV4的10080端口访问100号小鸡的80端口,在/etc/network/interfaces文件的vmbr1下增加:

        post-up iptables -t nat -A PREROUTING -p tcp --dport 10080 -j DNAT --to-destination 10.1.1.100:80
        pre-down iptables -t nat -D PREROUTING -p tcp --dport 10080 -j DNAT --to-destination 10.1.1.100:80

保存后重启网络服务生效:/etc/init.d/networking restart。如果不想重启网络,可以手动在母机执行一下这个命令:

iptables -t nat -A PREROUTING -p tcp --dport 10080 -j DNAT --to-destination 10.1.1.100:80

这样会立即生效。


补几个图

母机网络设置

母机DNS默认设置

如果要开纯IPV6虚拟机,需要设置一下独服的DNS

外网访问虚拟机

虚拟机访问外网

备忘:有的教程修改/etc/network/interfaces时还有下面两行,我实测不写也可以。

post-up /sbin/ip -f inet6 route add 2001:41d0:2:cf5a::100 dev vmbr1
pre-down /sbin/ip -f inet6 route del 2001:41d0:2:cf5a::100 dev vmbr1

此教程参考了网上的诸多其他教程【虽然几乎没有(完全/完美)能用的】,我本人也进行了很多试错和测试。如需转载请注明出处。


赞(0) 打赏
猛牛哥原创:科技密码 » KIMSUFI使用proxmox开【IPv4nat+IPv6】小鸡

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    完全按照这个设置,v4 nat正常,但是ipv6怎么也不通,不知道哪里的问题

    xiao2周前 (11-07)回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏