文档章节

Linux系统端口映射(路由转发)

w
 wilim2009
发布于 2017/08/25 15:27
字数 364
阅读 4
收藏 0

Linux系统端口映射(路由转发),首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0。

启用网卡转发功能

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

这样允许iptalbes FORWARD。

此规则及时生效,但重启后就失效了,需要在配置文件里添加

vim /etc/sysctl.conf

复制代码

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
#每个消息队列的最大字节限制
kernel.msgmax = 65536
#每个消息的最大size
kernel.shmmax = 68719476736
#内核参数定义单个共享内存段的最大值
kernel.shmall = 4294967296
#控制共享内存页数
# sysctl –p(使之立即生效)

默认值0是禁止ip转发,修改为1即开启ip转发功能。

配置端口转发

vi /etc/sysconfig/iptables 添加*nat段

*nat

:PREROUTING ACCEPT [0:0]

:POSTROUTING ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A PREROUTING -d 202.168.349.101 -p tcp --dport 16688 -j DNAT --to-destination 192.168.2.35:16688

-A POSTROUTING -d 192.168.2.35 -p tcp --dport 16688 -j SNAT --to 192.168.2.55

COMMIT

其中,202.168.349.101为外网ip,192.168.2.35为内网ip,16688为做转发的端口,192.168.2.55为转发到的目标ip

重启iptables

service iptables restart

测试转发

telnet 192.168.2.35 16688

 

本机端口转发

如果只需要在本机间不同的端口转发就比较容易了,比如 访问 http://ip:729 我想返回 http://ip:80 的内容,配置如下:

[root@localhost sbin]# iptables -t nat -A PREROUTING -p tcp --dport 729 -j REDIRECT --to-ports 80 [root@localhost sbin]# service iptables save [root@localhost sbin]# service iptables restart

 

© 著作权归作者所有

共有 人打赏支持
w
粉丝 2
博文 18
码字总数 11433
作品 0
东城
程序员
私信 提问
Docker容器之内网独立IP访问

Docker容器之内网独立IP访问 实验介绍 今天在学习Docker容器的时候,在虚拟机中创建并开启了一个nginx的container,然后通过端口映射的方法,即将container的80端口映射到虚拟机的80端口,然...

xiaoyaokeyx
08/10
0
0
Linux 上的基础网络设备详解

Linux 抽象网络设备简介 和磁盘设备类似,Linux 用户想要使用网络功能,不能通过直接操作硬件完成,而需要直接或间接的操作一个 Linux 为我们抽象出来的设备,既通用的 Linux 网络设备来完成...

ustbgaofan
2014/12/17
0
0
终于搞点iptables端口映射了,

搞了一天,终于搞定iptables了,,开头就对着人家配对了的配置对抄,但怎也不对,在网上搜了N多文章也不对,终于找到了一篇比较详细的,看了二次,终于配置成功,现在可以用端口映射访问内网...

JavaGG
2010/03/24
0
1
Linux Cluster Director (调度器)

Linux Cluster (Linux集群) Cluster: 计算机集合, 为了解决某个特定问题而结合起来; 系统的扩展方式: Scale Up: 向上扩展; 如: 向原有的机器添加内存, CPU. Scale Out: 向外扩展; 如: 向原有...

520的罗
07/03
0
0
ssh隧道转发内网穿透功能实现(反弹式木马原理)

一、ssh说明 SSH(secure shell)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境(这点很重要);SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。人...

dyc2005
04/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里云建站

阿里云自营建站 没想到阿里云已经切入这块市场了。可以用拖动的方式来建站的模式,真的还是6.

miaojiangmin
31分钟前
2
0
linux系统top命令:virt,res,shr详解

VIRT:virtual memory usage 虚拟内存 1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用...

刘祖鹏
37分钟前
2
0
day154-2018-11-21-英语流利阅读-待学习

快手网红发明家:百万粉丝 vs 零销量 雪梨 2018-11-21 1.今日导读 “我做了一个‘雷神锤’的斜挎包,你看这里可以打开,里面可以装手机、卫生纸、钱包,觉得轻的话可以放一些砖头。咱们把它背...

飞鱼说编程
44分钟前
10
0
图灵奖得主华人高徒发布AI芯片!64位RISC-V、高度可编程,低功耗

作为RISC-V架构下的旗手玩家,睿思芯科自然希望通过产品展现出RISC-V可编程架构的巨大潜力。 https://mbd.baidu.com/newspage/data/landingshare?context=%7B%22nid%22:%22news_917924603675...

whoisliang
44分钟前
5
0
xcode 10 缺少 libstdc++6.0.9 解决方案

image.png 本方案基于xcode10正式版操作,其它版本请自行验证! 苹果在XCode10中移除了libstdc++(libstdc++.6、libstdc++6.0.9)库。 项目解决方法:删除libstdc++(libstdc++.6、libstdc++6....

壹峰
49分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部