| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Linux restful请求实现IP:端口转发功能 -> 正文阅读 |
|
[系统运维]Linux restful请求实现IP:端口转发功能 |
1 iptables简介和使用1.1 iptables简介iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。 1.2 iptables语法
?-A:向规则链中添加条目; -D:从规则链中删除条目; -i:向规则链中插入条目; -R:替换规则链中的条目; -L:显示规则链中已有的条目; -F:清楚规则链中已有的条目; -Z:清空规则链中的数据包计算器和字节计数器; -N:创建新的用户自定义规则链; -P:定义规则链中的默认目标; -h:显示帮助信息; -p:指定要匹配的数据包协议类型; -s:指定要匹配的数据包源IP地址; -j<目标>:指定要跳转的目标; -i<网络接口>:指定数据包进入本机的网络接口; -o<网络接口>:指定数据包要离开本机所使用的网络接口
iptables表:
? 每个表包含多个规则链名包括:
动作包括:
1.3 常用命令(1)查看已添加的iptables规则
或者:
? (2)删除已经添加的iptables规则 将所有iptables以序号标记显示,执行:
?比如要删除INPUT里序号为8的规则,执行:
1.4 补充IP转发IP地址分为公有ip地址和私有ip地址,Public Address是由INIC(internet network information center)负责的,这些IP地址分配给了注册并向INIC提出申请的组织机构。Private Address属于非注册地址,专门为组织内部使用。Private Address是不可能直接用来跟WAN通信的,要么利用帧来通信(FRE帧中继,HDLC,PPP),要么需要路由的转发(nat)功能把私有地址转换为公有地址才行。 出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功 ?查是否启动 ip地址转发
为1则为开启,为0 则为关闭:
这种设置只是暂时的,它的效果会随着计算机的重启而失效。 通过在/etc/sysctl.conf设置参数: 如果想使IP转发永久生效,就请修改/etc/sysctl.conf ,在这里可以增加一条net.ipv4.ip_forward = 1 2 跨IP转发restful请求?转发服务器的功能如下: 数据包从网卡进入,首先会被PREROUTING这个内置的规则链处理。之后会进行路由判断。如果目的地址是本机,则会走INPUT规则链,然后提交给本机程序处理;如果目的地不是本机地址,且开启了转发功能,则会经过FORWARD规则链,然后准备将数据包发出。本机要发出的数据包和经过FORWARD的数据包,会经过路由判断,然后再经过POSTROUTING规则链,最后从网卡发出。这里的ethX和ethY 可以是同一个网卡。 ? 假设转发服务器的地址192.168.1.20 。目的服务器的地址是 220.181.111.188 。在转发服务器上把8080端口转发到220.181.111.188的80端口。 ?2.1 打开ipv4时的转发功能/etc/sysctl.conf(1)这个里面增加以下 net.ipv4.ip_forward = 1 (2)然后使用sysctl -p 的命令将参数生效 sysctl -p /etc/sysctl.conf (3)然后重新启动网络即可 systemctl restart network (4)如果只是当前系统生效的话 也可以使用? echo 1 > /proc/sys/net/ipv4/ip_forward 2.2 在PREROUTING上修改目的地址iptables -t nat -A PREROUTING -p tcp --dport 转发服务器端口 -j DNAT --to-destination 目的地址:目的端口 如:
2.3 在POSTROUTING上修改源地址iptables -t nat -A POSTROUTING -d 目的地址?-p tcp --dport 目的端口?-j SNAT --to 转发地址 如:
或者将用伪装的方式 iptables -t nat -A POSTROUTING -d 220.181.111.188 -p tcp?--dport 80?-j?MASQUERADE 2.4 为了防止在FORWARD上面被丢弃,添加规则允许通过iptables -I FORWARD -d 目的地址 -p tcp --dport?目的端口?-j ACCEPT iptables -I FORWARD -s 目的地址 -p tcp --sport 目的端口?-j ACCEPT 如:
?
现在就可以在客户端上测试一下访问?192.168.1.20:8080 就会访问到 220.181.111.188:80 参考文献:【1】用iptables将流量转发到另外一台机器 - 高艳兵 - 博客园 【2】[iptables实现IP地址重定向(转发)] - 简书 【3】https://www.csdn.net/tags/NtjaIgwsOTUwMzAtYmxvZwO0O0OO0O0O.html? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 15:55:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |