如果使用 Iptables 配置端口转发 ?

Enable Port Forwarding using Iptables

现实生活中,港口转发就像在一个大型公寓大楼里告诉送货司机该去哪里。通常情况下,该建筑群的正门是不对外开放的。但如果里面有人想要快递,他们可以告诉保安让司机进来,并指引他们到特定的公寓。

类似地,在计算机网络中,端口转发允许外部的人访问他们通常无法到达的专用网络中的服务。当你想让网络外的人使用 web 服务器,在你的游戏服务器上玩游戏,或者访问你设置的其他类型的服务时,这是很有用的。

Linux 操作系 使用一个名为 iptables 的工具来设置端口转发。Iptables 是一个程序,可以让你设置数据包如何通过你的计算机防火墙的规则,这有助于保持你的网络安全。这些规则根据它们的作用被分成不同的组。

在本教程中,我们将向您展示如何在 Linux 系统上使用 iptables 设置端口转发。

必备条件

  1. A Linux machine with root or sudo access.
  2. The iptables package should be installed.

Step 1: Install Iptables

首先,确保在 Linux 机器上安装了 iptables 包。

Debian / Ubuntu

sudo apt update 
sudo apt install iptables
  • CentOS / Fedora / RHEL
sudo dnf install iptables

Step 2: Check Existing Rules

在开始修改 iptables 规则之前,最好先查看一下当前的规则。

sudo iptables -L -v -n

-L 列出规则,-v 显示更详细的信息,-n 以数字格式显示 IP 地址和端口号。

Step 3: Enable IP Forwarding

为了允许在内核级别转发,我们需要启用 IP 转发。

编辑 /etc/sysctl.conf 配置文件

sudo nano /etc/sysctl.conf

添加或取消注释下面一行

net.ipv4.ip_forward=1

应用更改,执行如下命令,这将确保在启动时启用 IP 转发。

sudo sysctl -p

Step 4: Configure the Forwarding Rule

要将流量从一个端口转发到另一个端口,请使用以下命令

sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80

8080 替换为系统接收流量的端口号,将 192.168.1.100 替换为希望转发流量的设备的 IP 地址,将 80 替换为目的设备的端口号。

Step 5: Masquerade the IP

最后,为了确保返回数据包的正确路由,您应该使用 MASQUERADE 目标,它将用传出网络接口的 IP 地址伪装传入数据包的 IP 地址。

sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Step 6: Save the Changes

永久保存这些规则,以便在重新启动后保持它们。

在 Ubuntu / Debian 中,你可以使用iptables-persistent 包,使用以下命令安装它。

sudo apt install iptables-persistent

在安装过程中,它会询问您是否要保存现有的 iptables 规则,IPv4 和 IPv6 规则均选择“Yes”。

在 CentOS / Fedora / RHEL 系统中,可以直接保存。

sudo service iptables save

规则将保存到 /etc/sysconfig/iptables 配置文件中。

Step 7: Verify the Configuration

可以通过在其他设备上连接源端口来验证端口转发是否正常。您可以使用 nc、telnet 或 curl 之类的工具来验证这一点。

记住检查是否有任何现有防火墙规则或安全组可能阻止对源或目标端口的访问。

我的开源项目

酷瓜云课堂-开源知识付费解决方案

  • course-tencent-cloud(酷瓜云课堂 - gitee仓库)
  • course-tencent-cloud(酷瓜云课堂 - github仓库)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/893638.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android复杂问题分析工具bugreportz详解

文章目录 bugreportz详细介绍功能与作用使用方法生成详细报告检查进度bugreportz 的优势分析报告 如何分析1. 解压 ZIP 文件2. 分析主要文件2.1 bugreport.txt2.2 logcat.txt2.3 kernel.log / last_kmsg2.4 events.log2.5 traces.txt2.6 dumpstate_board.txt 3. 工具支持4. 重点…

Axure重要元件三——中继器添加数据

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 本节课:中继器添加数据 课程内容:添加数据项、自动添加序号、自动添加数据汇总 应用场景:表单数据的添加 案例展示: 步骤…

SpringColoud GateWay 核心组件

优质博文:IT-BLOG-CN 【1】Route路由: Gateway的基本构建模块,它由ID、目标URL、断言集合和过滤器集合组成。如果聚合断言结果为真,则匹配到该路由。 Route路由-动态路由实现原理: 配置变化Apollo 服务地址实例变化…

No.17 笔记 | XXE漏洞:XML外部实体注入攻击

1. XXE漏洞概览 XXE(XML External Entity)是一种允许攻击者干扰应用程序对XML输入处理的漏洞。 1.1 XXE漏洞比喻 想象XML解析器是一个听话的机器人,而XXE就是利用这个机器人的"过分听话"来获取不应该获取的信息。 1.2 XXE漏洞危…

vue综合指南(六)

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vuet篇专栏内容:vue综合指南 目录 101、Vue 框架怎么实现对象和数组的监听? 102、Proxy 与 Object.d…

运营商DNS vs 公共DNS,IT运维的你选对了吗?

在IT运维中,选择运营商DNS还是公共DNS是一个需要综合考虑多方面因素的决策。 一、运营商DNS 优点 1. 速度与可用性: • 运营商DNS服务器通常部署在本地或邻近地区,因此能够提供较低的延迟和更快的解析速度。 • 运营商通常会投入大量资源来…

Java利用itextpdf实现pdf文件生成

前言 最近公司让写一个数据页面生成pdf的功能,找了一些市面代码感觉都太麻烦,就自己综合性整合了一个便捷的工具类,开发只需简单组装数据直接调用即可快速生成pdf文件。望大家一起学习!!! 代码获取方式&am…

java游戏网站源码

题目:java游戏网站源码 编号B22A390 主要内容:毕业设计(Javaweb项目|小程序|Mysql|大数据|SSM|SpringBoot|Vue|Jsp|MYSQL等)、学习资料、JAVA源码、技术咨询 文末联系获取 感兴趣可以先收藏起来,以防走丢,有任何选题、文档编…

初识C++--C++入门

一、命名空间 在c语言中存在着名字冲突的问题,即不能出现同名,会出现错误。而在c中变量、函数和后⾯要学到的类都是⼤量存在的,这些变量、函数和类的名称将都存在于全局作⽤域中,可能会导致很多冲突。为了解决这个问题&#xff0c…

十三、Python基础语法(字符串str-中)

一、切片 使用下标可以获得字符串中指定的一个字符,使用切片可以获取字符中多个字符。 字符串[start: end: step] start:开始位置的下标 end:结束位置的下标(end对应的位置数据取不到) step:步长&#…

要在 Git Bash 中使用 `tree` 命令,下载并手动安装 `tree`。

0、git bash 安装 git(安装,常用命令,分支操作,gitee,IDEA集成git,IDEA集成gitee,IDEA集成github,远程仓库操作) 1、下载并手动安装 tree 下载 tree.exe 从 tree for Windows 官方站点 下载 tree 的 Windows 可执行文件。tree for Window:https://gnuwin32.source…

FreeRTOS学习笔记1

结合汇编 ldr r3, pxCurrentTCB ldr r2 R3 value0x20000054,R2 value0x2002B950 pxCurrentTCB 020028950 pxTopOfStsck 0x2002B8FC 解释这些寄存器的值是怎么变化的 1. ldr r3, pxCurrentTCB 这一行指令将 全局变量 pxCurrentTCB 的地址加载到寄存器 r3 中。pxCu…

【论文精读】RELIEF: Reinforcement Learning Empowered Graph Feature Prompt Tuning

RELIEF: Reinforcement Learning Empowered Graph Feature Prompt Tuning 前言AbstractMotivationSolutionRELIEFIncorporating Feature Prompts as MDPAction SpaceState TransitionReward Function Policy Network ArchitectureDiscrete ActorContinuous ActorCritic Overall…

【C++】精妙的哈希算法

🚀个人主页:小羊 🚀所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 一、哈希结构1、哈希概念2、哈希函数3、哈希冲突3.1 闭散列3.2 开散列 4、完整代码 一、哈希结构 1、哈希概念 A…

C# WPF 仿 Android Toast 效果

转载请注明出处: https://blog.csdn.net/hx7013/article/details/142860084 主职Android, 最近需要写一些WPF的程序作为上位机,目前WPF的MessageBox过于臃肿,且想找一个内置的非阻塞的简单提示一直找不到,想到了Android的Toast所以写了这个扩…

低代码可视化-uniapp购物车页面-代码生成器

购物车页面是电子商务网站或应用程序中的一个关键功能页面,它允许用户查看、编辑和管理他们选择加入购物车的商品。下面通过低代码可视化实现一个uniapp购物车页面,把购物车整个事件都集成进去。实现完成后可以保存为页面模板。 收货地址选择 如果尚未…

yolov9目标检测/分割预测报错AttributeError: ‘list‘ object has no attribute ‘device‘常见汇总

这篇文章主要是对yolov9目标检测和目标分割预测测试时的报错,进行解决方案。 在说明解决方案前,严重投诉、吐槽一些博主发的一些文章,压根没用的解决方法,也不知道他们从哪里抄的,误人子弟、浪费时间。 我在解决前&…

JVM 实战篇(一万字)

此笔记来至于 黑马程序员 内存调优 内存溢出和内存泄漏 内存泄漏(memory leak):在Java中如果不再使用一个对象,但是该对象依然在 GC ROOT 的引用链上,这个对象就不会被垃圾回收器回收,这种情况就称之为内…

Rust usize类型(用来表示地址的类型)Rust地址与指针的区别(Rust指针)

文章目录 Rust usize类型Rust地址与指针的区别(指针有数据类型,而地址只是一个数字)指针地址使用场景示例 Rust usize类型 在Rust中,地址通常表示为usize类型,这是因为usize是专门设计用来存储指针大小的无符号整型&a…

vue综合指南(五)

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vuet篇专栏内容:vue综合指南 目录 81 简述每个周期具体适合哪些场景 82、Vue $forceUpdate的原理 83、vue获取数…