虚拟机(VPS)及内网端口转发的几种方法

最近云鼎群有很多朋友开始尝试搭建属于自己的VPS品牌。但很多人因为资金紧张,不得不选择单IP的服务器(下称母鸡)。因此,NAT VPS应运而生。NAT VPS,顾名思义,利用NAT技术使单IP的利用率最大化。因为共用一个IP,所以每位用户只能共享母鸡的1--65535端口区间中的任意一个端口。然而,有许多用户不知道如何转发VPS的内网端口。今天,X-osadmin在这里向大家介绍三种转发端口的方法。

 

1.通过Rinetd软件

评价:简单,适合新手

这款软件由boutell开发,是一款小巧的端口转发软件。安装也十分的简单。

安装方法:

wget --no-check-certificate https://boutell.com/rinetd/http/rinetd.zip

unzip rinetd.zip

cd rinetd

mkdir /usr/man

make && make install

安装大概半分钟至一分钟即可完成。剩下的,就是配置环节。

  1. 创建空配置文件(touch /etc/rinetd.conf)
  2. 写入配置

写入配置时,请注意按照以下格式:

[Source Address] [Source Port] [Destination Address] [Destination Port]

例如:我们要转发1.2.3.4(公网IP)的8080端口到192.168.0.2的80端口,按照下面的方法填写:

0.0.0.0 8080 192.168.0.2 80

Almost done! 保存设置,启动rinetd(rinetd -c /etc/rinetd.conf)

** 可以将本程序的进程写入后台或者包装成服务,并设置开机启动

 

2. 通过addnat.sh(仅适合SolusVM+虚拟机的架构)

评价:对于SolusVM新手来说,非常合适

顾名思义,这是一个脚本,使用方法也非常的简单。

wget http://down2.unix.website/linuxshell/addnat.sh

sh addnat.sh

接下来只需要按照提示进行填写,脚本将自动设置好转发。

Please input your public IP: (你的母鸡公网地址)

How many···use: (这里是问需要映射几个段的内网IP地址,可以1,最多5)

完成后,请注意以下端口分配规则:

基础规则是 10.0.C.D 的内网IP(此例子C为1,D最多是3位数)
SSH端口是 61D(D不足3为前面补0)
可用端口是 1D1 - 1D9(D不足3为前面补0)

具体案例: 10.0.1.56
SSH端口是 61056
可用端口是 10561 - 10569

默认NAT网关:10.0.1.1--10.0.5.1 (取决于映射的内网IP段数)

 

3. 通过iptables映射或转发

评价:不适合新手使用

iptables是Linux系统中集成的防火墙(CentOS 7等新系统已经更换成Firewalld),但因为其自带的NAT功能,所以被广泛用于端口转发用途。

因为系统内已经集成了iptables,所以我们只需要输入命令进行配置即可。

首先需要开启内核转发功能(必须):echo 1 > /proc/sys/net/ipv4/ip_forward

举例:把192.168.0.2(内网)的80端口转发到1.2.3.4(公网)的8080端口

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.0.2:8080

配置完成后,还需要开启端口及保存设置:

iptables -I INPUT -p tcp/udp --dport 8080 -j ACCEPT

service iptables save / yum install iptables-services && service iptables save(适合CentOS 7等系统)

 

以上是比较主流的几种端口转发/映射的方式。不排除有其他的方式,欢迎在下方讨论。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注