曾经dedipath在世时亲测有效的步骤记录,在这里稍作整理。Contabo VPS 也可以成功配置 NAT IPv4 小鸡。其他主机商没试过。
为虚拟机设置NATV4和IPV6自动获取模式,每次开小鸡都不再需要手动加IP。
配置步骤
安装Proxmox的教程可以找官方的,这里不赘述。
大鸡可以杜甫也可以VPS。
安装完成Proxmox后,进入Web管理页面,创建一条名为vmbr1的新Linux桥接。
SSH登录到你的服务器,编辑/etc/sysctl.conf
文件,然后插入以下内容:
1 2 3 4 5 6 7 8 9 10
| net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr net.ipv6.conf.all.accept_ra=2 net.ipv6.conf.default.accept_ra=2 net.ipv6.conf.all.use_tempaddr=2 net.ipv6.conf.default.use_tempaddr=2 net.ipv6.conf.default.addr_gen_mode = 3 net.ipv6.conf.all.addr_gen_mode = 3
|
这些设置包括启用IP转发、配置网络队列规则(fq队列)、启用BBR拥塞控制算法以优化网络连接,以及配置IPV6地址生成方式。
保存后用sysctl -p
命令生效。
进入/etc/network
目录,编辑interfaces
文件,并配置vmbr1接口的IPV4和IPV6地址。
为vmbr1接口指定一个IPV4私有CIDR,例如192.168.0.0/24
。同时,也需要为这个接口指定一个IPV6的地址,这里我们使用公网的单播地址,通常在主机的地址范围内选取。
之后需要设置iptables规则,用于配置网络地址转换(NAT)和端口转发。
例如在这里我们将192.168.0.0/24
的地址进行NAT,然后使用MASQUERADE完成NAT。
如果要端口转发,可以使用以下规则:iptables -t nat -I PREROUTING -d 114.5.1.4 -p tcp --dport 443 -j DNAT --to 192.168.0.2:443
。这条规则表示将公网IP地址(114.5.1.4)的443端口的流量转发到内网地址192.168.0.2
的443端口。
完整的网络接口配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| auto vmbr1 iface vmbr1 inet static address 192.168.0.1/24 bridge-ports none bridge-stp off bridge-fd 0
iface vmbr1 inet6 static address 2605:6400:1234:1::1/64 post-up iptables -t nat -I POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE post-up iptables -t nat -I PREROUTING -d 114.5.1.4 -p tcp --dport 443 -j DNAT --to 192.168.0.2:443 post-down iptables -t nat -D PREROUTING -d 114.5.1.4 -p tcp --dport 443 -j DNAT --to 192.168.0.2:443
|
配置完成后,重启服务器!
重启后,安装一些必要的软件包
apt install isc-dhcp-server radvd -y
其中isc-dhcp-server
用于提供DHCP服务,radvd
用于提供Router Advertisement服务
配置DHCP服务:
编辑/etc/default/isc-dhcp-server
文件,设置DHCP服务的网络接口:
1 2
| INTERFACESv4="vmbr1" INTERFACESv6="vmbr1"
|
然后编辑/etc/dhcp/dhcpd.conf
文件,配置DHCP地址池。
插入:
1 2 3 4 5 6
| subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8; range 192.168.0.2 192.168.0.254; }
|
配置DHCPv6的地址池:
编辑/etc/dhcp/dhcpd6.conf
文件,插入:
1 2 3
| subnet6 2605:6400:1234:1::/64 { range6 2605:6400:1234:1::1 2605:6400:1234:1:ffff:ffff:ffff:fffe; }
|
配置Router Advertisement服务:
编辑/etc/radvd.conf
文件,插入:
1 2 3 4 5 6 7 8 9 10 11 12
| interface vmbr1 { AdvSendAdvert on; MinRtrAdvInterval 30; MaxRtrAdvInterval 100; prefix 2605:6400:1234:1::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; };
|
启动并设置开机自启动isc-dhcp-server
和radvd
服务:
1 2 3 4
| systemctl enable isc-dhcp-server systemctl enable radvd systemctl start isc-dhcp-server systemctl start radvd
|
至此,大鸡配置完毕!
参考原文:
https://kiyoka.moe/post/28.html
https://www.nodeseek.com/post-44410-1