本文以hetzner为例,其他的大体相同,可以分为三个步骤
1.绑定ipv6到服务器上
(hetzner,默认已经绑定了ipv6 ip到服务器,online和ovh需要手动绑定,请参见官方教程或者网上搜索)
2.建立ipv4和ipv6 网络,
很简单,在web端操作下就好了
这时候子网已经建立好了,就是还不能上网。
在 proxmox web端新建一个桥接网络。桥接网络名为 vmbr0
其中ipv6地址为出口网卡的ivp6地址
3.允许网络转发。
编辑 99-networking.conf
1 |
nano /etc/sysctl.d/99-networking.conf |
使用下面配置,保存并退出
1 2 |
net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 |
重启系统,让刚刚新增的配置生效
ipv4 设置
注意:enp2s0 为你的服务器的出口网卡,有些系统为 eth0,注意替换
注意 iptables 规则重启就会消失。建议进行保存iptables 规则,解决方案详见 linux添加开机自启动脚本示例详解
1 2 |
#允许转发网络,让内网的主机能够伤心 iptables -t nat -A POSTROUTING -s '192.168.20.0/24' -o enp2s0 -j MASQUERADE |
1 2 |
#端口转发至内网指定的ip iptables -t nat -A PREROUTING -i enp2s0 -p tcp --dport 7776 -j DNAT --to 192.168.20.2:3389 |
ipv6设置
2a01:4f9:2a:xxx::2 为你的主网卡的ipv6地址
注意 下面 规则重启就会消失。解决方案详见 linux添加开机自启动脚本示例详解
添加虚拟网卡转发
1 |
ip -f inet6 neigh add proxy 2a01:4f9:2a:xxx::2 dev vmbr0 |
添加vps转发
1 2 3 |
#注意 这只是为一个ipv6地址提供了转发,如果建立了多台机器,需要多次添加下面的转发配置 ip -f inet6 neigh add proxy 2a01:4f9:2a:xxx::3 dev enp2s0 ip -f inet6 route add 2a01:4f9:2a:xxx::3 dev vmbr0 |
4.创建一个新的虚拟机,并设置指定ip
注意ip 为上面第三步你指定的ip
如果需要端口转发至其他机器的话,你需要在第三步多设置端口转发
配置如下图所示