iptable实现端口转发
利用iptables的规则来实现端口转发:
第一步需要将内核参数的net.ipv4.ip_forward=1
场景一:实现本地端口转发
本地端口转发实在PREROUTING链中将端口做NAT转换:
# iptable -t nat -A PREROUTING -p tcp --dport "$原端口" -j REDIRECT --to-port "$目标端口"
场景二、实现端口远程端口转发
远程端口转发原理,是在本地PREROUTING链中将端口进行NAT转换,然后通过FORWARD链转至POSTROUTING链中,然后在POSTROUTING中将原client地址进行SNAT的转换
1、 DNAT转换 iptable -t nat -A PREROUTING -p tcp -m tcp --dport "$原端口" -j DNAT --to-destination xxx:xxx:xxx:xxx:$目标端口 note:xxx:xxx:xxx:xxx为目标机器地址
2、FORWARD放行: iptable -t filter -A FORWARD -j ACCEPT ### 此处可设置其他的过滤条件
3、SNAT转换: iptable -t nat -A POSTROUTING -p tcp -m tcp --dport $目标端口 -j SNAT --to-source "xxx:xxx:xxx:xxx" note: xxx:xxx:xxx:xxx 为端口转发机器地址
可选 设置
如果要实现本地应用程序访问目标端口:如 curl http://xxx.xxx.xxx.xxx:$目标端口/ note: xxx:xxx:xxx:xxx 为端口转发机器地址
因为本地应用(用户空间)访问目标端口时,是通过OUT链路出用户空间,必须在OUT 链中添加相应DNAT的规则,再经过POSTROUTING链出去目标机器
iptables -t nat -A OUTPUT -p tcp -m tcp --dport "$原端口" -j DNAT --to-destination xxx:xxx:xxx:xxx:$目标端口 note: xxx:xxx:xxx:xxx 为目标机器地址
iptable实现端口转发的更多相关文章
- CentOS7 下使用 Firewall防火墙系统封禁允许IP和端口的访问 端口转发 IP转发方法
CENTOS7的防火墙系统默认已经从iptable改成了firewall,使用方法也有所不同,下面是详细介绍 一.管理端口 列出 dmz 级别的被允许的进入端口 # firewall-cmd --zo ...
- 使用iptables做端口转发
通过iptables可以做转发 #!/bin/sh IPT="/sbin/iptables" /bin/echo "1" > /proc/sys/net/ ...
- SecutrCRTt 连接VirtualBox 中的Ubuntu -端口转发
端口转发: 设置>网络>端口转发 端口转发: 子系统地址通过在Linux系统总使用ifconfig查看: 还需要在linux主机上安装sshd sudo apt-get insta ...
- LCX端口转发实现内网突破
工具:lcx.exe 原理:当目标主机仅开放了web服务,而该服务又仅能供内网用户使用,外网用户根本无法直接访问.因此想要让外网用户能能够访问局域网中的系统服务,必须进行端口映射等操作才行.其原理就是 ...
- Linux IPTABLES端口转发
之前在Linux上用普通用户部署了一个Tomcat,然后将其server.xml中的端口配置为80端口,用普通用户运行就提示绑定端口失败(permission denied),google了一下,原来 ...
- 【nginx配置】nginx做非80端口转发
一个场景 最近在使用PHP重写一个使用JAVA写的项目,因为需要查看之前的项目,所以要在本地搭建一个Tomcat来跑JAVA的项目.搭建成功后,因为Tomcat监听的端口是8080,因此,访问的URL ...
- SSH 端口转发+内网穿透
用最直白的语言对本文所有内容进行定义: 端口转发(-L):用A机器(内网)登录B机器(公网), 在A机器打开端口,将收到的所有请求转发到B机器的某个端口 (在代理机上执行) 内网穿透(-R):用A机器 ...
- 用iptables 实现本地端口转发
设定本机2121端口转发到21端口 iptables -t nat -A PREROUTING -p tcp -i eth0 -d -j DNAT --to iptables -t nat -I PO ...
- 使用VirtualBox进行端口转发 连接数据库
转自 http://blog.sina.com.cn/s/blog_484d87770102uxi6.html 使用VirtualBox很久了,很多用法都没有深钻,真的是不虚心学习啊. 由 ...
随机推荐
- 「luogu4135」作诗
「luogu4135」作诗 传送门 分块好题. 预处理出 \(f[i][j]\) 表示 \(i\) 号块到 \(j\) 号块的答案,\(num[i][k]\) 表示 \(k\) 在前 \(i\) 块的 ...
- 对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
引用:https://www.jb51.net/article/142775.htm 列表赋值: 1 2 3 4 5 6 7 >>> a = [1, 2, 3] >>&g ...
- 利用Python进行数据分析笔记-时间序列(时区、周期、频率)
此文对Python中时期.时间戳.时区处理等阐述十分清楚,特别值得推荐学习. 原文链接:https://blog.csdn.net/wuzlun/article/details/80287517
- Eclipse传递main函数参数
在项目上右击 Run As->Run Configurations...->Arguments->在Program arguments:的文本框中输入你要传入的参数,若有几个参数则在 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:禁用按钮
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- C#调用Win32 的API函数--User32.dll ----转载
Win32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的.有时候我们之直接调用Win32 的API,可以很高效的实现想要的效果. using System; ...
- Python学习笔记之基础篇(四)列表与元祖
#### 列表 li = ['alex','wusir','egon','女神','taibai'] ###增加的3种方法 ''' # append li.append('日天') li.append ...
- 基于TF-IDF的推荐
仅作学习使用 基于TF-IDF的推荐: 将文档分词 对于每个term,计算词频TF和逆文本指数IDF,形成term的权重 计算项目文档和用户偏好文档的相似度 参考: https://blog.csdn ...
- SpringCloud实战——(2)通过Feign调用其他模块
大型项目下往往有很多模块,ZCGL项目结构如下: 需要引用的其他模块已经发布成服务并在Eureka Server注册中心注册,如下: 写程序时引用了其他模块,并且其他模块在项目中,但是IDEA任然无法 ...
- android7.0关于TelephonyManager.getDeviceId()返回null的问题
在android7.0的系统下发现TelephonyManager.getDeviceId()在权限允许的情况下取得返回值也为null,解决方法如下: public static String get ...