陈奇网络工作室

用NAT VPS实现主机端口转发(流量转发)的过程

本文的内容

显示

1.

准备

2.

使用防火墙进行传输。

3.

使用UFW作为中转地。

4.

使用iptables进行中转。

4.1.

将规则保存在CentOS下

4.2.

在Debian Ubuntu下保存规则:

5.

使用socat进行中转。

6.

目标机器的设置

6.1.

推荐阅读

老刘在文章《NAT VPS是什么?NAT VPS可以用来做什么?NAT VPS商家推荐列表》中介绍,NAT VPS可以用于流量转移(主机端口转发),这也是NAT VPS的主要用途。有了NAT vps,中转的成本可以大大降低,带宽也不低于云厂商vps,用起来很爽!今天就来分享一下相关教程:本文以CentOS 8和Debian 10 Ubuntu 20.04为例,介绍如何在NAT VPS上设置流量转移。

开始之前,请参考以下文章,根据实际操作系统配置服务器:

CentOS服务器的初始配置

Debian Ubuntu服务器的初始化配置

本文以sammy用户为例来设置中转器,服务器默认已经按照初始化配置文章进行了配置。

本文将介绍防火墙、UFW、iptables和socat(推荐)四种转移流量的方法,并根据需要选择其中一种。您也可以将目标机器设置为只允许传输机器根据需要进行访问。

其中有防火墙、UFW、iptables?TCP和UDP都可以转发,而?socat?您还可以转发包含域名的地址。

准备

买个合适的NAT VPS,这里也有一些服务商。

了解NAT VPS的基本用法。例如,要理解NAT VPS,您通常需要检查服务提供商的端口映射设置。

Linux操作基础知识和理解?vim?编辑器的基本用法

使用防火墙进行传输。

这种方法在CentOS下相对简单(CentOS 8默认使用firewalld),所以也推荐使用。

检查firewalld的运行状态,输出应该是?跑步:

防火墙-命令-状态

接下来,设置端口转发:

sudo firewall-cmd-zone=public-permanent-add-port本地端口号/tcp。

sudo firewall-cmd-zone=public-permanent-add-port本地端口号/udp。

sudo firewall-cmd-zone=public-permanent-add-forward-port=port=local端口号:proto=tcp:toport=目的端口号:toaddr=目的地址。

sudo firewall-cmd-zone=public-permanent-add-forward-port=port=local端口号:proto=udp:toport=目的端口号:toaddr=目的地址。

sudo防火墙-cmd-zone=public-permanent-add-masqueue

sudo防火墙-cmd -重新加载

其中?目标地址?是目标服务器的IP地址。

此时,使用?防火墙?介绍了建立中转的方法。此外,根据使用场景,目标机器的防火墙可以被配置为仅接受来自该NAT VPS的流量。

使用UFW作为中转地。

这个方法在Debian Ubuntu下相对简单(Ubuntu 18.04默认使用UFW)。

你要先修改?/etc/sysctl.conf?文件:

echo ' net . IP v4 . IP _ forward=1 ' | sudo tee-a/etc/sysctl . conf

sudo sysctl -p

修改?/etc/default/ufw?

sudo vim /etc/default/ufw

DEFAULT_FORWARD_POLICY='接受'

修改?/etc/ufw/before.rules?

sudo vim /etc/ufw/before.rules

你在线吗?*过滤器?在之前添加:

# nat表规则

#端口转发

#提交以应用更改

犯罪

目的地地址在哪里?是目标服务器的IP地址和本地intranet地址?是本机在内部局域网中的IP地址。

重启UFW:

sudo ufw禁用sudo ufw启用

此时,使用?UFW?介绍了建立中转的方法。此外,根据使用场景,目标机器的防火墙可以被配置为仅接受来自该NAT VPS的流量。

使用iptables进行中转。

对于其他不使用firewalld的系统或用户,也可以使用iptables进行中转设置。

你要先修改?/etc/sysctl.conf?文件:

echo ' net . IP v4 . IP _ forward=1 ' | sudo tee-a/etc/sysctl . conf

sudo sysctl -p

下面显示了不同端口的传输方法(本地端口号和目的端口号不同):

sudo iptables-t NAT-a pre routing-p TCP-d port本地端口号- j DNAT - to-destination目的地址:目的端口号。

sudo iptables-t NAT-a pre routing-p UDP-dport本地端口号- j DNAT - to-destination目的地址:目的端口号。

sudo iptables-t NAT-a post routing-p TCP-d目的地址-d端口目的端口号- j SNAT -源本地网络地址。

sudo iptables-t NAT-a post routing-p UDP-d目的地址-d端口目的端口号- j SNAT -源本地内部网地址。

其中,目标地址是目标服务器的IP地址,本地内网地址是本地网络的IP地址。

将规则保存在CentOS下

sudo服务iptables保存

在Debian Ubuntu下保存规则:

sudo apt安装iptables-persistent -y

sudo netfilter-持久保存

sudo netfilter-持续启动

此时,使用?iptables?介绍了建立中转的方法。此外,根据使用场景,目标机器的防火墙可以被配置为仅接受来自该NAT VPS的流量。

使用socat进行中转。

如果要转发的端口数量较少,我个人推荐这种方法。

首先安装socat,以Debian Ubuntu系统为例:

sudo apt安装socat

配置TCP转发,编辑服务文件,并根据需要调整该文件名。socat-tcp?例如,文件名:

sudo vim/etc/systemd/system/socat-TCP . service

添加以下内容,并注意替换?本地端口号,目的地址,目的端口号,目的地址在哪里?它可以是IP地址或域名地址:

[单位]

Description=Socat TCP转发服务

After=network.target

[服务]

类型=简单

CapabilityBoundingSet=CAP _ NET _ BIND _ SERVICE

ambient capabilities=CAP _ NET _ BIND _ SERVICE

DynamicUser=true

execstart=/usr/bin/socattcp 4-listen:本地端口号,reuseaddr,fork TCP4:目的地址:目的端口号。

重启=始终

[安装]

WantedBy=多用户.目标

然后,启动socat的TCP转发服务:

sudo systemctl启用socat-tcp

sudo systemctl start socat-tcp

如果需要UDP转发,请继续编辑新文件,并根据需要调整文件名。socat-udp?例如,文件名:

sudo vim/etc/systemd/system/socat-UDP . service

添加以下内容,并注意替换?本地端口号,目的地址,目的端口号,目的地址在哪里?它可以是IP地址或域名地址:

[单位]

描述=Socat UDP转发服务

After=network.target

[服务]

类型=简单

CapabilityBoundingSet=CAP _ NET _ BIND _ SERVICE

ambient capabilities=CAP _ NET _ BIND _ SERVICE

DynamicUser=true

execstart=/usr/bin/SOCAT-T 60 UDP 4-Listen:本地端口号,reuseaddr,fork UDP4:目的地址:目的端口号。

重启=始终

[安装]

WantedBy=多用户.目标

然后,启动socat的UDP转发服务:

sudo systemctl启用socat-udp

sudo systemctl start socat-ud

此端口被本地防火墙清除:

Sudo ufw允许本地端口号

此时,使用?socat?介绍了建立中转的方法。此外,根据使用场景,目标机器的防火墙可以被配置为仅接受来自该NAT VPS的流量。

注意:使用nohup直接启动socat转发TCP。

nohup/usr/bin/socat-dtcp 4-listen:本地端口号,reuseaddr,fork,su=nobody TCP4:目的地址:目的端口号/var/log/socat.log21。

nohup/usr/bin/SOCAT-D-T 60 UDP 4-Listen:本地端口号,reuseaddr,fork,su=nobody UDP4:目的地址:目的端口号/var/log/SOCAT.log21。

以上两个命令可以在?根?在用户下执行。

目标机器的设置

此处示例的目标机器是Debian Ubuntu系统,安装并启用了UFW:

要允许TCP和UDP入站:

Sudo ufw允许从中转地址到任何端口的端口号。

要仅允许TCP入站:

Sudo ufw允许proto tcp从中转地址到任何端口的端口号。

要仅允许UDP入站:

Sudo ufw允许proto udp从中转地址到任意端口端口号。

在上面的命令中,中转地址是NAT VPS的公共IP地址。

其他系统和其他防火墙控制软件的操作类似,只是从NAT VPS释放IP的指定端口号。

最后列举了一些提供NAT VPS的业务,供读者参考:

米酷云双12活动:全场7.5折优惠,含香港HKT VDS/NAT、香港HGC全业务VPS、美国BGP NAT。

纳特。ReCloud:新客户可享受30天免费优惠,可选择马来西亚NAT和马来西亚存储NAT VPS,低至25元/月!

微云微云服务条款TOS发布!可选郑州联通和镇江电信专属主机,广州移动VDS,NAT?VPS(香港Azure NAT,新加坡Azure NAT,韩国Azure NAT,日本Azure NAT),上海BGP专属VPS。

咕咕云618活动:香港轻量级200M带宽云服务器256元/年,香港服务器低至88元/年,爆款NAT?1芯1G云服务器支付仅需256元。

WebHorizon新加坡NAT?VPS:1.1美元/月/1核/256MB内存/5GB NVMe空间/250GB月流量/1Gbps端口/KVM。

Wishosting大硬盘闪购250Mbps带宽不限月流量套餐:德国1800GB大硬盘NAT?VPS每月只需7美元。美国弗吉尼亚州200GB硬盘的VPS仅需5美元/月。

墨云:799.9元/年/384MB内存/8GB空间/无限流量/10Mbps-40Mbps带宽,专属/KVM/广钢IPLC/深港IEPL/沪日IPLC/沪韩IPLC/景德IPLC。

西部数码代理(chenqinet.cn)是工信部、ICANN、CNNIC认证的全球顶级域名注册服务机构,中国五星级域名注册商!超过2000万个域名通过西部数码代理注册和管理,超过100万个网站托管在西部数码代理云服务器和虚拟主机。西部数码代理支持数十个顶级域名的注册和管理,支持批量查询、批量注册、批量分析、智能分析、批量迁移等便捷易用的功能,使用体验非常好。

目前西部数码代理域名注册在售,最低只要1元!

更多详情,请见http://zhuji.chenqinet.cn/services/domain/.

西部数码代理域名抢占预订,支持各类高价值老域名抢占,支持“网站历史、百度收录、百度权重、历史外链、百度评价、搜狗反链接”等综合搜索功能,共计26项!可以快速准确的定位到你想要定位的各类精品域名!同时,西部数码代理域名抢注整合了全球多家抢注厂商(将陆续增加近200家抢注厂商),梳理出13个抢注渠道,从根本上提高抢注成功率!

其中第一关成功率高达99%。每天西部数码代理预发布功能也会发布一些优质的过期域名,可以直接注册拍卖。

预定你最喜欢的域名:http://zhuji.chenqinet.cn/services/grab/index.asp.

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3