linux服务器自建snat和dnat

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: 为了节省成本,购买了云服务器的时候只买了一个公网IP,但是有多台机器需要实现上网或者是被访问,一个IP只能绑定一个机器,就只能使用NAT网关或者是内网源进行下载,受限较大。

1、问题背景

为了节省成本,购买了云服务器的时候只买了一个公网IP,但是有多台机器需要实现上网或者是被访问,一个IP只能绑定一个机器,就只能使用NAT网关或者是内网源进行下载,受限较大。

2、测试环境

测试环境:阿里云专有网络VPC下的两台服务器,一台有公网,一台没有公网,同内网

系统:linux系统

注:firewalld实现方案需要在红帽系列带有firewalld防火墙管理的系统上操作

3、实现方案

3.1 构建SNAT网络实现无公网机器上网(选用一种就可以)

3.1.1 iptables实现方式

3.1.1.1 创建专有网络并创建新机器

专有网络是:vpc-hp***********yomk 10.0.0.72是有公网的,10.0.0.73是内网机器

如上图,一台服务器是有公网的,一台服务器是没有公网的

3.1.1.2 设置路由表

进入专有网络路由表

添加路由

3.1.1.3 在带有公网的服务器内部设置(内网机器不需要配置)

开启IP转发:

在/etc/sysctl.conf添加net.ipv4.ip_forward = 1,然后执行

sysctl  -p使其生效


iptables -t nat -I POSTROUTING -s VPC的IP段 -j SNAT --to-source  公网IP的ECS内网IP

注:10.0.0.0/8就是内网要上网的机器或者IP段,10.0.0.72就是公网的内网地址


3.1.1.4 测试

此时在没有内网的机器内部测试

3.1.2 firewalld实现方式

先根据3.1.1.1和3.1.1.2设置交换机配置路由表、设置转发。firewalld只是添加转发的规则需要使用富规则

firewalld设置了zone的概念,iptables是主机防火墙,firewalld可以为不同的网卡绑定不同的zone,然后实现访问控制

3.1.2.1、修改网卡的zone

sudo firewall-cmd --permanent --zone=external --change-interface=eth0

执行结果

sudo firewall-cmd --permanent --zone=external --change-interface=eth0

success


3.1.2.2、设置特定 区域的snat-IP伪装

sudo firewall-cmd --zone=external --add-masquerade --permanent


3.1.2.3、设置转发规则

sudo firewall-cmd --zone=external --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/8" masquerade'

执行结果:

sudo firewall-cmd --zone=external --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/8" masquerade'

Warning: ALREADY_ENABLED: rule family="ipv4" source address="10.0.0.0/8" masquerade

success

3.1.2.4、重新加载生效

sudo firewall-cmd --reload

3.1.2.5、测试

在内网机器上执行测试

ping -c 4 aliyun.com

PING aliyun.com (140.205.135.3) 56(84) bytes of data.

64 bytes from 220.181.38.251 (140.205.135.3): icmp_seq=1 ttl=52 time=14.1 ms

64 bytes from 220.181.38.251 (140.205.135.3): icmp_seq=2 ttl=52 time=14.0 ms

64 bytes from 220.181.38.251 (140.205.135.3): icmp_seq=3 ttl=52 time=14.0 ms

64 bytes from 220.181.38.251 (140.205.135.3): icmp_seq=4 ttl=52 time=14.0 m

3.2、DNAT实现

3.2.1 iptables实现

3.2.1.1 配置

在公网机器上执行

iptables -t nat -A PREROUTING -d 10.0.0.72 -p tcp --dport 80 -j DNAT --to 10.0.0.73:80

这个指令实现了当客户端访问10.0.0.72所对应的公网的80端口的时候,就会转发到10.0.0.73的80端口,实现访问内部服务


3.2.1.2 测试

3.2.2. firewalld实现

3.2.2.1 配置

1、设置转发规则

firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=80:toaddr=10.0.0.73 --permanent

[root@ceshi~]# firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=80:toaddr=10.0.0.73 --permanent

success

2、重载生效

firewall-cmd --reload

[root@ceshi ~]# firewall-cmd --reload

success

3.2.2.2、测试

到此,自建SNAT和DNAT的过程全部结束

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
W9
|
16天前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
60 1
|
19天前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
27 4
|
21天前
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。
|
21天前
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
7天前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
19天前
|
安全 Linux API
Linux服务器安全
人们常误认为服务器因存于数据中心且数据持续使用而无需加密。然而,当驱动器需维修或处理时,加密显得尤为重要,以防止数据泄露。Linux虽有dm-crypt和LUKS等内置加密技术,但在集中管理、根卷加密及合规性等方面仍存不足。企业应选择具备强大验证、简单加密擦除及集中管理等功能的解决方案,以弥补这些缺口。
21 0
|
弹性计算 Linux
[转]ECS之初体验(Linux)
服务商: 阿里云 操作系统:Linux 64位 Ubantu 20.04 64位
117 0
|
17天前
|
存储 人工智能 弹性计算
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理。通过合理优化资源分配、利用自动伸缩及高效数据管理,ECS能显著提升AI系统的性能与效率,降低运营成本,助力科研与企业用户在AI领域取得突破。
35 6
|
22天前
|
人工智能 弹性计算 编解码
阿里云GPU云服务器性能、应用场景及收费标准和活动价格参考
GPU云服务器作为阿里云提供的一种高性能计算服务,通过结合GPU与CPU的计算能力,为用户在人工智能、高性能计算等领域提供了强大的支持。其具备覆盖范围广、超强计算能力、网络性能出色等优势,且计费方式灵活多样,能够满足不同用户的需求。目前用户购买阿里云gpu云服务器gn5 规格族(P100-16G)、gn6i 规格族(T4-16G)、gn6v 规格族(V100-16G)有优惠,本文为大家详细介绍阿里云gpu云服务器的相关性能及收费标准与最新活动价格情况,以供参考和选择。
|
27天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。