一.介绍
Hetzner一直以来是以卖性价比比较高的德国机器著名的,最近出了新的芬兰机房,推出了比以往更具有吸引力的机型,我也忍不住买了台,打算买几个IP给自己开机器玩,不过,在折腾的过程中,发现了一些坑,于是在全部解决后来分享下自己的经验。
二.问题
如果是个人开VPS我还是推荐Proxmox,因为使用起来方便,而且功能也比较全,但是,由于Hetzner的特殊,导致了一些问题的出现
- Hetzner在系统模板处没有Proxmox
- 在解决第一个问题后发现Hetnzer的Proxmox网卡配置不正确
- 在解决第二个问题后发现Hetzner的IP无法直接使用
另外,希望你看到这篇文章的时候还没买IP,特别是别买IP段(subnet),因为Hetzner的机房网络启用了MAC Filter,而你购买的单个IP可以设置MAC,IP段却不能设置,这个问题在国外的主机论坛上也有很多人提到,解决办法是发工单让机房帮你把IP段Route到你的主IP或者购买的单个IP上,还是比较麻烦的。
此外,由于IP广播的特点,你买的IP段里面会有两个IP无法使用(一个作为网关一个作为广播地址),所以如果你买了/29那么实际上只能有6个可用(大部分机房其实是5个可用),但是你出的钱却是8个的,所以如果你需要的IP不超过6个,建议买单个(单个IP最多只能买6个)。
三.解决
然后让我们依次解决这几个问题。
由于面板上我们找不到能够直接安装Proxmox的,所以我们需要通过Rescue系统来安装
激活后需要手动重启系统,然后才会进入Rescue,在这个页面激活后会给你连接密码,请务必记住,这个也是你在Rescue模式中安装系统后你新系统的默认密码
选择第二项来重启系统,等待片刻后就能用SSH连上了
在SSH中输入installimage会进入安装界面
选择Other中的第四项,第三项的Proxmox是4版本的,比较老,第四项是最新版的5
然后会提示不是官方支持的系统,直接回车跳过,接着会告诉你需要修改安装配置,进入一个编辑器界面,在这儿我们可以修改系统Raid配置,系统磁盘分区配置,Hostname啥的
这样代表启用Raid并配置为Raid0,我们只有两块硬盘无法配置Raid10,所以看你需要,如果只是测试可以配置为Raid0,如果要存放要紧的数据建议关闭Raid或者启用Raid1
然后修改分区配置,这样就是boot 512M 其余使用LVM,然后分配给根目录15G 缓存6G,如果你要在宿主机上跑啥东西可以给根目录多分点,比如50G啥的。
由于Proxmox
是把所有的模板、容器、虚拟机磁盘全部保存在/var/lib/vz
目录中,这个是Proxmox的数据目录,所以这里配置为:
PART swap swap 6G PART /boot ext3 512M PART / ext4 15G PART /var/lib/vz ext4 all
配置完成后,按F10
保存,然后一路Yes
,系统会开始自动安装。
安装结束后输入reboot
重启杜甫。
系统配置
然后基本上就是等了,可以ping服务器,等待重启后就可以访问Proxmox的Web界面了
地址: https://IP:8006/
用户名: root
密码: 救援模式登陆密码
需要注意的是这儿https请忽略警告,然后就能看到管理界面了,登陆可以选择中文
这个提示可以参考我之前的文章来去掉——>传送门
但是刚装完你会发现我们并不好创建虚拟机,为什么?因为没有合适的网卡来桥连,默认只有一个系统网卡,而没有br,怎么办?
由于Proxmox不是Hetzner的官方支持系统,所以我们需要对配置文件稍作修改
这部分参考了 https://forum.proxmox.com/threads/proxmox-network-config-on-hetzner.36245/
### Hetzner Online GmbH installimage #应用interfaces.d中的其他配置文件 source /etc/network/interfaces.d/* #配置loopback设备 auto lo iface lo inet loopback iface lo inet6 loopback #设置enp0s31f6为手动配置模式,这个enp0s31f6看你原本配置文件里是啥 iface enp0s31f6 inet manual #配置用于开vm的bridge auto vmbr0 iface vmbr0 inet static address 母鸡IP netmask 母鸡子网掩码 gateway 母鸡网关 broadcast 这个在面板的IPs选项卡里鼠标移动到ip上能看到 bridge_ports enp0s31f6 bridge_stp off bridge_fd 0 #别少了,改成自己的 up route add -net 母鸡IP netmask 母鸡子网掩码 gw 母鸡网关 dev enp0s31f6 #配置IPv6 iface vmbr0 inet6 static address IPv6地址 netmask 64 gateway fe80::1 #配置用于VM之间内网传输的bridge 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 post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 192.168.0.10:80 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 192.168.0.10:80 post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 443 -j DNAT --to 192.168.0.10:443 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 443 -j DNAT --to 192.168.0.10:443 post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 888 -j DNAT --to 192.168.0.10:888 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 888 -j DNAT --to 192.168.0.10:888 post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8888 -j DNAT --to 192.168.0.10:8888 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 8888 -j DNAT --to 192.168.0.10:8888 post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 6680 -j DNAT --to 192.168.0.10:6680 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 6680 -j DNAT --to 192.168.0.10:6680 post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 873 -j DNAT --to 192.168.0.10:873 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 873 -j DNAT --to 192.168.0.10:873 post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 3389 -j DNAT --to 192.168.0.10:3389 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 3389 -j DNAT --to 192.168.0.10:3389
然后直接重启,当然请务必确认没写错啥,不然你可能得再次重装了
然后,如果你是用独立IP来开机器的,那么你需要去面板给你的IP申请独立的MAC地址
IP边上这个图标点一下进去就能申请了,然后开机器的时候自己指定MAC这样就OK了
大部分情况下分配的IP是和你服务器自带的IP在一个段里的,如果不在一个段里可能发生创建的VPS在CentOS6下无网络的情况,可以参考这篇文章解决——>传送门
独立IP小鸡
在创建的时候注意选择桥接方式为vmbr0
,而MAC地址
在Hetzner后台的独立IP处点击后方的小电脑申请一个,同时IP地址设置为静态,地址为IP/32
或者IP/24
皆可。
如果需要给IPV6地址,请设置IPV6为静态模式,地址为:
2a01:abc:def:1234::xxx/64
这样的格式,网关地址就填写刚才设置的母鸡IPV6地址:2a01:abc:def:1234::2
。
NAT+V6小鸡
创建的时候选择桥接方式为vmbr1
,并且配置静态IP地址,IP地址是刚才设置的内网IP段,如:10.10.10.111
。
配置完成后,在杜甫中执行命令:
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 12345 -j DNAT --to-destination 10.10.10.111:123
这样就可以允许通过母鸡的12345端口访问小鸡的123端口,当然,如果不需要外部访问,不配置也行。
如果需要配置IPV6,则直接在小鸡上添加一块网卡,接口选择vmbr0,同时配置下静态的IPV6地址即可。
结束语
最后,安全起见修改默认root密码,然后修改ssh端口或者关闭ssh服务。Hetzner家有独立的防火墙配置,功能也很强大,另外,在翻阅相关资料后,发现从16年左右HZ就已经开始大范围部署防火墙等硬件设施,LTE论坛有人曾遭遇60G的DDOS,服务器仍然可以正常访问,可见Hetzner家对DDOS的防御已经很不错了,加上不限流量的G口网络,简直巴适!