Hetzner独服用Proxmox开NAT机器的整个配置过程还是有点复杂的,这里记录下,留给需要的人。
这套方案可行是可行,但是想拿来做销售的话,估计不怎么现实,因为很多东西都要手动配置,搞线上的话,最好是全自动化开通,很显然这套方案只适合自己虚拟几个小鸡玩玩,或是卖几个给认识的朋友。。。
话不多说,先登上你的Hetzner后台,激活救援模式:
接着在后台执行硬重启:
重启完成后用Xshell登录到你的救援系统内,可以看到如下图界面:
执行命令:
installimage
在弹出的窗口中选择Other:
选择如图所示的系统:
直接回车不用管:
还是直接回车,这是提醒你待会要设置硬盘RAID:
现在你可以看到配置文件了,在这里首先把硬盘RAID改成0,如图所示:
接着往下翻,看到分区这块,因为我们是安装Proxmox,由于Proxmox的特性,Proxmox默认是把程序的所有数据都保存到/var/lib/vz中去的,所以我们可以把大部分硬盘空间都划分给/var/lib/vz。而系统本身的话,我建议留100G就够了,划分配置如图所示:
修改好了后,直接按键盘F10,选择YES保存配置:
警告你是否要继续,直接回车:
还是回车:
接着就是等了,大概10分钟左右就安装完成了,成功后会出现如下界面:
执行命令重启机器:
reboot
等机器开机后,访问地址:https://你的服务器公网IP:8006
不出意外的话就可以打开Proxmox的WEB界面了。请注意,地址的协议是https,不是http哦。
登录的用户名是root,密码就是你服务器SSH的root密码,登录界面可以选择中文:
OK,我们登录进去之后先什么都不要做,回到Xshell中来,编辑一下网卡配置文件:
nano /etc/network/interfaces
我这台机器默认的网卡配置是这样的:
因为Proxmox创建VPS的时候,必须要用到一个vmbr0的网卡,而我们的机器内没有,所以这里要自己创建一个,其实我们在Proxmox的WEB界面里面也能添加vmbr0,但是我们要开的是NAT小鸡,关于NAT的一些转发配置还是要更改这个网卡配置文件,所以我们不如直接手动一次性都改了。
你们可以直接复制我的这份网卡信息:
auto vmbr0 iface vmbr0 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 enp4s0 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '192.168.0.0/24' -o enp4s0 -j MASQUERADE
上面的这段加在up route add -net后面就行了,如图所示:
注意:每台机器的网卡名都不一样,比如我这台的网卡名是enp4s0,你们的如果不是这个名字,就要改成你们自己的,查看机器网卡名的方法,执行命令:
ifconfig
有公网IP的那一个就是:
最后我们重启网络服务:
/etc/init.d/networking restart
如果你的配置信息写的都是正确的,可以看到服务能重启成功,否则就要自行更改:
接着,我们要开启Hetzner母鸡内的ipv4转发功能。有人可能会问,之前你的网卡配置里面不是已经做了ipv4转发吗?为什么还要做?之前我们是通过向/proc/sys/net/ipv4/ip_forward这个文件写入1来开启机器的ipv4转发,但这个并不一定在所有机器上都能生效,比如现在的Hetzner它其实是没生效的,因为Hetzner的系统调用了sysctl.conf。
所以,我们直接修改sysctl.conf:
nano /etc/sysctl.conf
把这个配置文件内如图所示的前面两个#号去掉:
让新设置生效:
sysctl -p
回显如下图内容就说明成功了:
现在我们回到Proxmox的WEB界面,对Proxmox进行一些设置。
首先我们要开设的是LXC架构的小鸡,那么我们可以直接在Proxmox的后台下载系统模版,操作方法如图所示:
在弹出的新窗口中就可以选择你需要的系统模版来下载了:
值得注意的是,在Proxmox中,我们不但可以开设LXC架构的小鸡,还能开设KVM架构的,但KVM架构,Proxmox默认是不提供系统模版的,如果需要开设KVM的机器,则我们要自己下载ISO文件到对应的路径,路径如下:
KVM模版存放路径:
/var/lib/vz/template/iso
LXC(OpenVZ):
/var/lib/vz/template/cache
OK,现在我们就可以尝试使用Proxmox来开设自己的第一台小鸡了。
首先,在Proxmox的右上角,有如图两个创建小鸡的选项:
这里,创建虚拟机就是开KVM架构的机器,创建CT就是开LXC架构的机器,所以,这里我们选择创建CT。
第一步设置主机名和系统root密码:
第二步选择系统模版,这里就可以选择我们之前下载好的系统模版:
第三步设置硬盘大小,需要注意的是LXC的机器硬盘可以自由扩容,但很难自由缩小,所以我们可以先创建一个比较小的硬盘,如果硬盘不够了,我们自己后期再添加容量就行:
第四步设置CPU,按需设置吧,我这里设置的1核心:
第五步设置内存和SWAP,按需设置即可:
第六步设置网络,请注意这是最关键的一步,千万别设置错了:
注:
1、在网络设置这块,首先我们选择桥接到vmbr0网卡。
2、IPv4/CIDR填写192.168.0.2/32,虽然这个CIDR限制没什么卵用,但Proxmox内的填写格式就是这样。。。
3、网关填:192.168.0.1
第七步设置DNS,我这里设置为谷歌的8.8.8.8:
最后一步确认你的配置,无误后点击完成即可:
现在就可以找到我们刚创建的小鸡了,点击启动,启动完成后我们可以使用JS版本的Console控制台来访问小鸡:
登录进去更新下系统,顺带测试下机器有没有网:
下个文件试试:
very nice,非常棒,机器是可以访问外网的,一切看上去都是那么的正常~
可是现在有个问题,机器现在我们是能访问到外网了,但外网怎么访问我们呢?这时候就需要在母鸡上做端口映射了。
直接在母鸡上执行:
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 23333 -j DNAT --to-destination 192.168.0.2:22
这条命令的意思是把母鸡端口23333,转发到IP为192.168.0.2的小鸡端口22上。那么这样做了之后,我们访问母鸡的公网IP+23333端口就相当于访问了这台小鸡的22端口。
同理,如果需要其他的端口,比如搭建SS啊之类的,就把小鸡的SS端口做一下映射即可。
但现在又有一个问题,你会发现一旦你把母鸡重启了,小鸡开机后外网又访问不到了。这是因为Debian的iptables不存储任何规则,机器重启后就清除所有之前的规则。所以,这里我们可以借助一个小软件,先apt安装它:
apt-get install iptables-persistent
会提示你是否保存现有的规则到文件,直接选择YES:
如果以后我们新增加了规则就可以用如下命令进行保存:
netfilter-persistent save
这样不管母鸡怎么重启,开机后系统还是会自动应用我们之前保存的规则。
存储的规则文件路径如下:
/etc/iptables/rules.v4
可以看到我们之前的规则都保存在这里:
OK,现在你会发现又出来一个问题,为什么我按你上面说的这样做了后,小鸡还是不能通过外网访问?如果你在小鸡内安装的系统是CentOS7的话,那么这是Proxmox精简后的模版,默认几乎是什么软件都没有安装的,就连SSH服务都没有安装,对,你没有看错,就是这么任性。所以,没有SSH服务,你连不上也很正常。并不是我们的配置哪里有错误。
所以接下来的这些设置都于母鸡无关了,这些设置都是在小鸡内完成的。
首先我们还是通过Proxmox后台的JS控制台访问小鸡并安装SSH服务:
yum -y install openssh-server
编辑SSH配置文件:
vi /etc/ssh/sshd_config
允许SSH通过22端口连接,去掉前面的#号即可:
允许使用root用户登录:
保存配置文件,然后启动SSH服务:
systemctl start sshd.service
至此,大功告成,现在我们使用Xshell通过母鸡的23333端口就能连接到小鸡内了:
写在最后:
不知道是母鸡的硬盘太辣鸡了还是哪里配置有问题,在小鸡内跑测评脚本测试IO的时候基本上一测试就断开连接,测试了好多次脚本就一次跑成功了,我也是很醉的,估计是硬盘不行。跑别的脚本或程序目前没发现什么问题。
关于Proxmox开KVM机器的网络设置,我估计直接用这套桥接的方案应该也是可行的,但是ProxmoxKVM那个控制台里面没有JS版本,只有一个noVNC,我实在是用不来noVNC,索性就懒得折腾了。。。
最新评论
5211314
能不能教我 一点不会