详解Linux下端口映射

端口映射器可实现端口映射功能,一个主要用途就是可以在局域网的网关上运行本程序,将网关服务器的某个端口映射为局域网中某台机器的某个端口,这样,局域网外部访问网关服务器的8081端口就相当于访问了局域网内部某台机器的80端口了。

打开 IP 转发

打开 IP 转发(路由器设备是默认打开的),必须允许 IP 转发,否则即使设置了 nat 映射规则,也是不能发生映射的,因为不开启转发,包不能被发过去。

echo 1 > /proc/sys/net/ipv4/ip_forward

从一台机器映射到另一台机器

映射关系 192.168.122.1:80 —> 192.168.122.221:80 192.168.122.221 在 80 端口开启了 nginx 服务器 本地链路的报文是不需要经过 PREROUTING 与 POSTROUTING 的,所以必须配置 OUTPUT 否则在本机上测试会发现转发规则无效!

  • 在 192.168.122.1 配置如下规则,然后在 192.168.122.1(本机) 的机器能访问 “192.168.122.1:80”
iptables -t nat -A OUTPUT -p tcp -d 192.168.122.1 --dport 80 -j DNAT --to 192.168.122.221:80
  • 在 192.168.122.1 配置如下规则,然后在 192.168.122.29(其他设备) 能访问 ”192.168.122.1:80“
# 配置目的地址转换
iptables -t nat -A PREROUTING -p tcp -d 192.168.122.1 --dport 80 -j DNAT --to 192.168.122.221:80
# 配置源地址转换
iptables -t nat -A POSTROUTING -p tcp -d 192.168.122.221 --dport 80 -j SNAT --to 192.168.122.1

从本机一个端口到另一个端口

映射关系 192.168.122.221:8080 —> 192.168.122.221:80 本地链路上的报文是不需要经过 PREROUTING 与 POSTROUTING 的,所以必须配置 OUTPUT 否则在本机上测试会发现转发规则无效! 192.168.122.221 在 80 端口开启了 nginx 服务器

  • 在 192.168.122.221 配置如下规则, 8080 映射到 80,这样本机能访问 “127.0.0.1:8080”
iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 8080 -j DNAT --to-port 127.0.0.1:80
  • 在 192.168.122.221 配置如下规则, 8080 映射到 80,这样能访问 “192.168.122.221:8080”
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80

其他

# 查看 nat 链规则
iptables -t nat -L -n --line-number

# 删除规则 POSTROUTING 的规则 1
iptables -t nat -D POSTROUTING 1

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/9947.html

(0)
晴川运维晴川运维
上一篇 2025年6月21日
下一篇 2025年6月21日

相关推荐

  • 详解Linux下字符串的操作方法

    本篇文章为大家讲解一下Linux下对字符串的操作方法, 有需要的小伙伴可以参考一下。 字符串截取 定义字符串 $ str=www.baidu.com 匹配字符串截取 # …

    Linux系统 2025年6月15日
  • Linux系统zypper命令使用实例

    zypper 是一个简单易用的命令行包管理器,它使用了一个软件包管理库叫做 libzypp 。Zypper 能够操作软件安装源 (比如 Build Service 或 标准 ope…

    Linux系统 2025年6月4日
  • Linux C线程池的具体实现方法

    什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了,下面为大…

    Linux系统 2025年6月27日
  • Linux下安装autossh

    autossh 是一款开源工具,可以帮助管理SSH会话、自动重连和停止转发流量。autossh会假定目标主机已经设定无密码SSH登陆,以便autossh可以重连断开的SSH会话而不…

    Linux系统 2025年9月19日
  • Linux下部署VPS

    VPS技术,将一台服务器分割成多个虚拟专享服务器的优质服务。实现VPS的技术分为容器技术,和虚拟化技术 。在容器或虚拟机中,每个VPS都可选配独立公网IP地址、独立操作系统、实现不…

    Linux系统 2025年6月13日
  • Aria2下载提速具体方法

    Aria2 是一个多平台轻量级,支持 HTTP、FTP、BitTorrent 等多协议、多来源的命令行下载工具。Aria2 可以从多个来源、多个协议下载资源,最大的程度上利用了你的…

    Linux系统 2025年10月9日
  • 详解选择排序

    选择排序(Selection sort)是一种简单直观的排序算法。其基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元…

    Linux系统 2025年10月21日
  • 数据科学行业常用的Python库

    近几年,Python 在数据科学行业的发展十分迅猛,也正因为如此,对于希望提升应用程序功能的数据科学家和机器学习专家来说,Python通常是首选编程语言。并且Python拥有大量的…

    Linux系统 2025年10月10日
  • 详解日志分析工具GoAccess

    GoAccess 是一款开源的且具有交互视图界面的实时 Web 日志分析工具,通过你的 Web 浏览器或者 *nix 系统下的终端程序(terminal)即可访问。能为系统管理员提…

    Linux系统 2025年6月4日
  • Linux下实现双网卡bonding

    Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。其实这项技术在Sun和Cisco中早已存在,被称为…

    Linux系统 2025年9月23日

发表回复

登录后才能评论