Hetzner这家的独立服务器购买额外IP有两种方法,第一种就是最常见的,直接买单个IP,一台服务器最多可以买6个,这种IP基本拿到手就能用,开KVM小鸡的时候,在后台申请一个MAC地址绑定就行了。
但毕竟只能买6个,如果还需要更多IP,就只能买IP段,也就是子网。在Hetzner后台最低可以买一个/29,最高可以买一个/25。但你可能会发现子网IP和单个IP不同,子网IP没有提供申请MAC地址的功能。如果我们把子网的IP按单个IP那样去用,你会发现小鸡是没有网的。
Hetzner的子网IP是需要我们自己做路由才能用的,我这边正好有一台机器需要配置一下,这里记录一下。
开始之前,友情提醒一下这家新上架的机器,B360的板子,8代U是装不了Debian9的,你装好了会发现没有网,原因是旧的系统已经没有网卡驱动支持了,如果要装这种旧系统得自己打驱动上去,但是他们客服也说的模模糊糊的,就丢了一个驱动链接的地址给我:
https://downloadcenter.intel.com/download/15817
我这边也懒得折腾了,用新不用旧吧,直接上Debian10,然后装一个Proxmox6:
echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg apt -y update && apt -y dist-upgrade apt -y install proxmox-ve postfix open-iscsi reboot
装好Proxmox重启上来之后,编辑网卡配置文件:
nano /etc/network/interfaces
我的配置如下:
### Hetzner Online GmbH installimage source /etc/network/interfaces.d/* auto lo iface lo inet loopback iface lo inet6 loopback iface eno1 inet manual iface eno1 inet6 manual auto vmbr0 iface vmbr0 inet static address 95.xxx.xxx.91 netmask 255.255.255.192 gateway 95.xxx.xxx.65 bridge_ports eno1 iface vmbr0 inet6 static address 2a01:9f5:5a:255c::2 netmask 128 gateway fe80::1 auto vmbr1 iface vmbr1 inet static address 192.168.0.1 netmask 255.255.255.0 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 '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 auto vmbr2 iface vmbr2 inet static address 95.xxx.xxx.161 netmask 255.255.255.248 bridge_ports none bridge_stp off bridge_fd 0 up route add -host 95.xxx.xxx.162 dev vmbr2 up route add -host 95.xxx.xxx.163 dev vmbr2 up route add -host 95.xxx.xxx.164 dev vmbr2 up route add -host 95.xxx.xxx.165 dev vmbr2 up route add -host 95.xxx.xxx.166 dev vmbr2 iface vmbr2 inet6 static address 2a01:9f5:5a:255c::2 netmask 64
这里解释一下这套配置:
1.如果你是买的单个IP开KVM小鸡,就把小鸡桥到vmbr0上用。
2.如果是屌丝买不起IP,想开NAT机器那就把小鸡桥到vmbr1上用。
3.如果是IP段(additional subnet)就把小鸡桥到vmbr2上。
这里着重解释一下IP段这块的配置,我在Hetzner买了一个/29,在后台我们可以看到是8个IP:
在邮件里面我们可以知道实际可用的IP是6个,这里去掉了一个网络地址和广播地址,所以是6个:
而真正能用到小鸡上面的只有5个,因为我们还需要在这6个里面拿出来1个做网关,所以在上面的vmbr2配置中,第一个可用IP(161)拿来做网关了,剩下的从162-166才是最后小鸡可用的。
此外,我还对vmbr2配置了IPv6支持,如果你要开双栈小鸡,同时支持IPv4/v6,还需要在母鸡上开启IPv6转发:
echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf && sysctl -p
全部配置完成之后别忘了重启网络服务或者直接重启机器:
systemctl restart networking.service reboot
这样我们就把/29的IP全部路由了,现在就可以拿来开小鸡了。不过你可能会发现如果是单个IP绑定MAC地址的那种,有DHCP服务可用,而现在这个IP段内的IP得我们自己手动在小鸡上配置,这样太麻烦了,既然没有DHCP服务,我们就自己动手装一个呗~
apt -y install isc-dhcp-server
编辑:
nano /etc/default/isc-dhcp-server
让DHCP服务只监听vmbr2的接口:
INTERFACESv4="vmbr2"
之后更改DHCP配置文件:
nano /etc/dhcp/dhcpd.conf
在文件末尾加入你的配置,我的配置如下,仅供参考:
subnet 95.xxx.xxx.160 netmask 255.255.255.248 { range 95.xxx.xxx.162 95.xxx.xxx.166; option domain-name-servers 8.8.8.8; option routers 95.xxx.xxx.161; default-lease-time 3200; max-lease-time 7200; }
重启isc-dhcp-server,如果重启不了有可能是pid被占用了,先把pid删掉:
rm -rf /var/run/dhcpd.pid systemctl restart isc-dhcp-server.service
然后是创建小鸡这块,针对我刚才配置的子网而言,这里选择vmbr2,另外把这个防火墙的勾去掉,不然小鸡接收不到DHCPREQUEST:
我是只有一个IP,开的小鸡没有使用IPV4,配置IPv6桥到 vmbr0 ,然后架设IPV4内网IP段 ,使用net转发,就是一个小鸡有2个网卡,一个网卡负责IPV6,一个网卡负责IPV4 ,结果 IPV4被blocked了,说该MAC应该只有一个IP,结果出现了别的IP ,郁闷ING
没遇到过你这个情况哦。。是hz发邮件说你的ip被blocked了么?
大佬 hz 这个情况怎么解决
We have detected that your server is using different MAC addresses from those allowed by your Robot account.
Please take all necessary measures to avoid this in the future and to solve the issue.