Hetzner独服折腾日记三—PVE网络配置

前言

在购买EX43之后,本想再单独购买/29的IPV4,便去hz的后台看了下ipv4的价格。额,月13欧还要加34欧的安装费,他家ip大概是金子做的吧。

囊中羞涩的我只能无限开NAT VPS了。好在,Hetzner还有/64的ipv6可用,这样就可以孵化NAT ipv4 VPS加独立ipv6 VPS了。

ipv4网络配置

ipv4其实配置起来很简单的,PVE官方文档也写了怎么配置NAT网络。原文链接:Network Configuration

原理就是新建一个虚拟网卡,搭建虚拟子网,然后通过iptables进行端口映射,实现虚拟机和外网互联。

也有使用brook进项端口映射的,这个看个人吧。

配置过程

hetzner的debian镜像默认是关闭转发的,编辑/etc/sysctl.conf,添加:

net.ipv4.ip_forward=1

hetzner的debian镜像里默认有,只不过加了注释,可以直接取消#注释

输入

sysctl -p

生效后,开启ipv4转发。

编辑/etc/network/interfaces,Hetzner的物理网卡配置不要动,只在下面添加新建虚拟网卡vmbr0,添加网桥:

auto vmbr0
#private sub network
iface vmbr0 inet static
        address  10.0.0.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0

        post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o eno1 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o eno1 -j MASQUERADE

保存和重启后,PVE的网络中会出现一个网桥:

这样就可以给虚拟机下发ipv4了。

端口映射

配置完网桥后,要设置端口映射才能使外网连接上创建的虚拟机。iptables规则每次重启就会失效,所以最简单的方法就是直接把规则写在/etc/network/interfaces里。

比如:

把10.0.0.20:22映射到母鸡的60000端口

post-up   iptables -t nat -I PREROUTING -p tcp -i eno1 --dport 60000 -j DNAT --to 10.0.0.20:22
post-down iptables -t nat -D PREROUTING -p tcp -i eno1 --dport 60000 -j DNAT --to 10.0.0.20:22

这样外网通过母鸡ip:60000端口就可以ssh连接到地址为10.0.0.20的虚拟机了。

不过iptables端口映射最大问题是,每次添加新的映射,必须重启母鸡才会生效,service networking restart 并不会生效。

如果母鸡的性能足够强,强烈建议pve里安装一台Windows虚拟机,然后开启远程桌面连接,这样其他Linux虚拟机22等常用的连接端口就不用映射了,Windows虚拟机远程就可以连接各个Linux虚拟机,因为他们是同一个内网。只需要管理好母鸡的3389端口安全就好。

Hetzner独服折腾日记三—PVE网络配置

ipv6 网络配置

ipv6网络配置起来就很麻烦了,站长鼓捣了好几天。

站长参考的教程:hostloc上的大佬写的帖子

配置过程

依旧编辑/etc/sysctl.conf,开启ipv6转发。

net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.forwarding=1
sysctl -p

编辑/etc/network/interfaces,在物理网卡(eno1)的ipv6配置里添加up ip -6 route del 2a01:4f8:fff:ffff::/64 dev eno1

iface eno1 inet6 static
    address 2a01:4f8:fff:ffff::2/64
    gateway fe80::1
    up ip -6 route del 2a01:4f8:fff:ffff::/64 dev eno1  #这个是ipv6的网段

新建vmbr0虚拟网卡,给定一个ipv6

iface vmbr0 inet6 static
    address 2a01:4f8:fff:ffff::3/64 #随便给个ipv6地址做网关
    bridge_ports none
        bridge_stp off
        bridge_fd 0
        post-up /sbin/ip -f inet6 neigh add proxy 2a01:4f8:fff:ffff::/64 dev vmbr0  #是让所有的ipv6流量走vmbr0,才能将ipv6流量转发出去
        pre-down /sbin/ip -f inet6 neigh del proxy 2a01:4f8:fff:ffff::/64 dev vmbr0  #是让所有的ipv6流量走vmbr0,才能将ipv6流量转发出去

新建虚拟机时:

ip写2a01:4f8:fff:ffff::ff/64,网关:2a01:4f8:fff:ffff::3

文章版权归作者所有。发布者:白嫖怪,转转请注明出处:https://c7pai.com/1185/

(1)
白嫖怪白嫖怪
上一篇 2023年2月28日 下午10:05
下一篇 2023年3月6日 上午10:33

相关推荐