hetzner独服安装proxmox后,配置NAT网络(为单IP创建虚拟机做准备)

本文的前提是HETZNER家的机器已经安装好了proxmox,如果还没有安装好,请转到:https://maijiaoben.com/hetzner-proxmox-install.html查看安装步骤。本人使用的场景是单IP开NAT虚拟机,如果您购买了多个IP,就不要往下看了。

一、登陆proxmox后台后,按照下图箭头依次点击链接,进入网络设置。新建一个网络桥接接口。

proxmox网络设置

二、填写IP和子网掩码,IP地址填写个局域网的网段地址就行,子网掩码就填255.255.255.0。其他项目不用填也不用改,保持默认(不用IPV6的情况下)。IPV6我还没有折腾过,这里暂时不设置IPV6信息。

网络接口设置

三、开启系统的转发功能,很简单,执行一条命令:echo 1 > /proc/sys/net/ipv4/ip_forward

特别说明:这条命令在之前的kimsufi的机器上使用正常。但是在这家Hetzner机器上使用没有效果,创建好的虚拟机无法连接外网。直接编辑文件/etc/sysctl.conf,增加net.ipv4.ip_forward = 1,也许之前有这一行,但是有注释,取消注释就行了。保存后执行sysctl -p就会生效。实测这样执行后,不能联网的虚拟机就恢复正常了。

四、配置iptables,先设置出站的nat转发。执行的命令是:iptables -t nat -A POSTROUTING -s '10.20.20.0/24' -o enp2s0 -j MASQUERADE。其中10.20.20.0根据刚才填写的IP修改。enp2s0是在“网络”页看到的配置有外网IP的那个网络接口。不同机器会有区别,例如kimsufi的机器安装proxmox后的外网接口是vmbr0。

特别说明:第三、四步的操作很多网上的教程(应该都是根据proxmox官网资料写的)都是通过写入/etc/network/interfaces文件的方式实现的(原因可能是Debian系统默认不支持保存iptables规则)。例如(官方例子):

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

但是这种方式有2个缺点,1:每条转发规则都要配置2行,分别是post-up时添加规则和post-down时删除规则。不知道不写post-down的话会怎么样。2:修改转发规则后,必须执行service networking restart重启网卡才能使修改生效。而重启网卡会导致整机瞬间断网,如果有需要保持长连接的业务,会受到严重影响。而我之前的实际使用中,即使重启网卡新规则也不会生效,必须重启母鸡才可以。这是更加不可接受的。其实这种方式就是通过网络配置文件自动执行iptables命令而已,还不如直接设置好iptables。直接使用iptables的话,修改了转发规则会立即生效,不用重启网络,也不用每个规则需要2条命令。下一步解决Debian系统重启后无法保持iptables规则的问题。

第五步、解决Debian系统重启后不保持iptables设置的问题:

touch /etc/network/if-pre-up.d/iptables

chmod +x /etc/network/if-pre-up.d/iptables

vi /etc/network/if-pre-up.d/iptables

在打开的编辑器里面输入以下文本,然后保存退出:

#!/bin/sh /sbin/iptables-restore < /etc/iptables

这样设置后,每次开机会从/etc/iptables读取iptables设置。修改iptables规则后,执行iptables-save > /etc/iptables这个命令就会把设置好的iptables规则保存到/etc/iptables这个文件。这样就不怕重启后丢失iptables设置了。

例如:

增加一条NAT转发规则并保存

iptables -t nat -A PREROUTING -i enp2s0 -p tcp --dport 21 -j DNAT --to 10.20.20.102:21

iptables-save > /etc/iptables

至此,单IP开多个小鸡的网络基础准备工作已经做好了,剩下的工作就是创建小鸡并在小鸡里设置小鸡的网络了。

proxmox开小鸡的教程请点这里。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏抠抠空间

django自带权限机制

权限机制能够约束用户行为,控制页面的显示内容,也能使API更加安全和灵活;用好权限机制,能让系统更加强大和健壮。因此,基于Django的开发,理清Django权...

24930
来自专栏fixzd

redis系列:主从复制

这篇文章主要讲述Redis的主从复制功能。会依次从环境搭建、功能测试和原理分析几个方面进行介绍。

15040
来自专栏Java学习网

http错误码对照表

http错误码对照表 2xx 成功 200 正常;请求已完成。 201 正常;紧接 POST 命令。 202 正常;已接受用于处理,但处理尚未完成。...

24570
来自专栏逸鹏说道

安装和搭建基于netcore的demo

系统CentOS安装:   网上很多教程,很详细,我就不再赘述了。在安装过程中,需要注意的是设置时区、个人账户密码、root密码(一定要注意,否则后续很麻烦)、...

38090
来自专栏运维

升级linux内核到3.0.0

wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2

27040
来自专栏专注研发

kafka安装与测试

Producer即生产者,向Kafka集群发送消息,在发送消息之前,会对消息进行分类,即Topic, Topic即主题,通过对消息指定主题可以将消息分类,消费...

40410
来自专栏JMCui

Spring消息之JMS.

19550
来自专栏电脑高手

如何通过路由器来控制上网

这种共享上网的方法一般如下:(光纤)电话线--语音分离器--(光纤猫)ADSL猫--宽带路由器-交换机-集线器-电脑

462130
来自专栏IT技术精选文摘

Kafka Topic架构-复制、故障切换和并行处理

本文介绍了Kafka主题的架构,并讨论了分区,如何做故障切换和并行处理。 Kafka Topic,日志和分区 回想一下,Kafka Topic是一个命名的记录...

38570
来自专栏xingoo, 一个梦想做发明家的程序员

Kafka入门初探+伪集群部署

Kafka是目前非常流行的消息队列中间件,常用于做普通的消息队列、网站的活性数据分析(PV、流量、点击量等)、日志的搜集(对接大数据存储引擎做离线分析)。 ...

21950

扫码关注云+社区

领取腾讯云代金券