首页 > 系统相关 >Linux中NAT配置——目的NAT

Linux中NAT配置——目的NAT

时间:2023-09-24 12:34:21浏览次数:34  
标签:Linux 网关 no 配置 NAT IPV6 服务器 yes 内网

Linux目的NAT地址转换配置

实验准备:

  • 客户端、网关、web服务器
  • 网关需要配置为双网卡
  • 目的:让内网的web服务器通过配置DNAT后可以被外网的用户访问。

Linux中NAT配置——目的NAT_iptables

一、初始化配置

确保客户端与Web服务器都能与网关连通

1)配置网关服务器

  • 为网关添加双网卡

Linux中NAT配置——目的NAT_DNAT_02

  • 配置内外网IP信息

Linux中NAT配置——目的NAT_iptables_03

#外网网卡
[root@NAT-SERVER ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens33
UUID=14684afe-660a-4ba0-8aa6-c0a594e3ca2d
DEVICE=ens33
ONBOOT=yes
IPADDR=100.100.1.254
NETMASK=255.255.255.0


#内网网卡
[root@NAT-SERVER ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.3.254
NETMASK=255.255.255.0
  • 开启路由转发功能
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p

Linux中NAT配置——目的NAT_Linux_04

2)配置外网客户端

[root@client ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=default
NAME=ens160
UUID=73457178-299a-4c31-ae33-2f809a1efb3d
DEVICE=ens160
ONBOOT=yes
IPADDR=100.100.1.10
PREFIX=24
GATEWAY=100.100.1.254
  • 测试与网关的连通性

Linux中NAT配置——目的NAT_DNAT_05

3)内网web服务器配置

  • 安装Apache服务后配置一个静态网页便于测试
  • 首先挂载iso镜像,配置本地yum源
mount -t iso9660 /dev/cdrom /mnt/cdrom

Linux中NAT配置——目的NAT_iptables_06

  • 创建一个repo文件,写入以下内容
[baseos]
name=BaseOS
baseurl=file:///mnt/cdrom/BaseOS  #将这里的地址更换为你自己的挂载地址
enabled=1

[appstream]
name=AppStream
baseurl=file:///mnt/cdrom/AppStream #将这里的地址更换为你自己的挂载地址
enabled=1
  • 安装Apache服务
#清除yum缓存
yum clean all && yum makecache
#安装Apache服务
yum install httpd -y

Linux中NAT配置——目的NAT_Linux_07

  • 写入网页测试文件,启动Apache服务
echo "这是内网web服务器" > /var/www/html/index.html
#启动Apache服务
systemctl start httpd && systemctl enable httpd
#访问测试
curl localhost

Linux中NAT配置——目的NAT_iptables_08

  • 测试与网关的连通性

Linux中NAT配置——目的NAT_Linux_09

Linux中NAT配置——目的NAT_DNAT_10

4)配置iptables策略

  • 测试未在网关上配置策略前,外网客户端与内网web服务器的通讯情况
  • 未配置策略前,无法访问到内网的web服务器

Linux中NAT配置——目的NAT_Linux_11

  • 在网关设备上配置DNAT
#当入站网卡为ens33时,并且访问的目标地址和端口是100.100.1.254:80时,则在收到请求时将目标地址改写为192.168.3.10的内网服务器
iptables -t nat -A PREROUTING -i ens33 -d 100.100.1.254 -j DNAT --to 192.168.3.10

Linux中NAT配置——目的NAT_DNAT_12

  • 再次测试外网客户端访问内网的web服务器

Linux中NAT配置——目的NAT_DNAT_13

#在内网web服务器上抓取访问80端口的信息
tcpdump -i ens160  -nnvv tcp port 80
  • 可以看到访问的信息中只有转换后的地址信息

Linux中NAT配置——目的NAT_iptables_14

标签:Linux,网关,no,配置,NAT,IPV6,服务器,yes,内网
From: https://blog.51cto.com/qclr/7585217

相关文章

  • Uinx\Linux系统编程第九章
    I/O库函数I/O库函数与系统调用系统调用函数:open()、read()、write()、lseek()、close()I/O库函数:fopen()、fread()、fwrite()、fseek()、fclose()相同点:1、目的:I/O库函数和系统调用都用于进行输入/输出操作,以便程序能够与外部设备、文件系统或网络通信。2、提供抽象:它们都提供了一种抽象层,使开......
  • Linux命令(83)之cut
    linux命令之cut1.cut介绍linux命令cut用来从文本文件或者标准输入提取文本列2.cut用法cut[参数][提取范围]文本文件cut常用参数参数说明-c从指定提取范围中提取字符-f从指定提取范围中提取字符段-d指定分隔符提取范围:n:第n项n-:第n项到行尾-m:行首到第m项n,m:第n项和第m项(单个的)n......
  • 《Unix/Linux系统编程》教材第10章学习笔记
    大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的?必备要素和技能:数据类型和变量:用于存储和处理数据的基本单元。控制结构:用于控制程序流程的结构,如条件语句、循环语句等。函数和模块:用于封装代码块......
  • linux/unix实战手册(2)
    目录计算机结构计算机结构查看中断号[waterruby@fedora38-2023-9-24~]$cat/proc/interruptsCPU0CPU11:293128IO-APIC1-edgei80428:00IO-APIC8-edgertc09:0......
  • 红旗Linux桌面应用教程:安装使用指南
    随着开源软件的日益普及,Linux操作系统也成为了越来越多用户的选择。而在众多Linux发行版中,红旗Linux是国产领先的操作系统之一。本文将为大家介绍如何在红旗Linux上安装和使用各种桌面应用程序。一、安装软件包管理器首先,我们需要安装一个软件包管理器,以便于方便地安装和升级各......
  • Linux下安装php56教程:安装前准备及检查
    1.安装前准备在安装之前,我们需要先检查一下系统中是否已经安装了 php。可以通过以下命令来检查:$php-v如果系统中已经安装了php,则会显示当前php的版本信息。如果没有安装,则会提示“commandnotfound”。2.安装必要的依赖包在安装php5.6之前红旗linux官网,我们需要先安......
  • Linux安装MySQL5.6:详细步骤及下载地址
    MySQL是一款常用的关系型数据库管理系统,而在Linux系统下安装MySQL5.6则是很多开发者和系统管理员们需要掌握的技能。本文将为大家详细介绍如何在Linux系统下安装MySQL5.6。第一步:下载MySQL5.6安装包首先,我们需要从MySQL官网上下载MySQL5.6的安装包。下载地址为:。选择适合自己系......
  • Linux轻松搭建网站:安装Apache服务攻略
    在如今数字化时代,网站已成为企业宣传和信息传递的重要渠道。而Apache服务器则是众多网站服务中最为常用的一种。本文将详细介绍如何在Linux系统上安装Apache服务,帮助你轻松搭建自己的网站。1.确认Linux版本在开始安装Apache服务之前,需要确认你所使用的Linux版本。常见的Linux发......
  • Linux数据库备份:高效使用mysqldump工具
    在现代企业管理中,数据库是企业重要的数据资产linux备份数据库,因此备份数据库显得尤为重要。Linux系统下有各种不同的工具可以用于备份数据库,其中最常用的是mysqldump工具。在本文中,我们将介绍如何使用mysqldump工具备份MySQL数据库,并探讨其他备份工具和备份策略。1.安装与......
  • 轻松安装Redhat Linux 6.5:详细步骤分享
    Redhat Linux是一款领先的企业级Linux操作系统,其版本更新频率较高,最新版本为8.5。但是对于一些老旧的设备或软件,可能需要安装较早版本的RedhatLinux系统。本文将以RedhatLinux6.5为例redhat linux6.5安装,详细介绍如何安装该版本的Linux系统。一、准备工作在进行RedhatLin......