[内网端口映射]内网端口映射ubuntu

理解:
“你家在1个小区里B栋2410室,你朋友来找你,找到小区门口,不知道你住哪层哪号?就问守门的保安,保安很客气的告诉了他你家详细门牌,所以你朋友很轻松的找到了你家。这个过程就是外网访问内网通过端口映射的形象比喻,”

篇一 : 内网端口映射ubuntu
使用Ubuntuiptables有许多地方能进行运作,比如:内网端口映射

1.系统环境

内网两台服务器:

A172.16.119.128

B172.16.119.129

希望将A机器的80端口映射到B机器的8013端口。

2.设置步骤

2.1./etc/sysctl.conf配置文件修改

删除“#net.ipv4.ip_forward = 1”行前面的“#”。 默认该行被注释掉的。

2.2.查看现有配置信息

iptables-L

如果显示内容如下:

ChainINPUT (policy ACCEPT)

targetprot opt source destination

ChainFORWARD (policy ACCEPT)

targetprot opt source destination

ChainOUTPUT (policy ACCEPT)

targetprot opt source destination

表示无任何设置,可以继续下1步操作。

否则执行:

iptalbes-F

iptalbes-X

iptalbes-Z

2.3.设置端口映射

分别执行:

iptables-t nat -A PREROUTING -d 172.16.119.128 -p tcp –dport 80 -j DNAT–to-destination 172.16.119.129:8013

iptables-t nat -A POSTROUTING -d 172.16.119.129 -p tcp –dport 8013 -j SNAT–to 172.16.119.128

iptables-A FORWARD -o eth0 -d 172.16.119.129 -p tcp –dport 8013 -jACCEPT

iptables-A FORWARD -i eth0 -s 172.16.119.129 -p tcp –sport 8013 -jACCEPT

2.4.验证端口映射

此时,访问,应该能访问到对应129服务器上端口为8013网站的abc.htm页面。

3.设置开机自动加载iptables的配置文件

3.1保存配置

执行命令:

#iptables-save > /etc/init.d/iptables.up.rules

将当前配置保存再iptables.up.rules文件中,文件名可以自己决定。

3.2修改网卡配置文件

在网卡IP配置文件/etc/network/interfaces末行加入(/etc/i[]nit.d/iptables.up.rules可改成自己定义的配置文件位置和名称)

pre-upiptables-restore < /etc/init.d/iptables.up.rules

3.3重启服务器验证

shutdown-r now

通过是正文的3大步介绍,我们清楚的知道了Ubuntuiptables 内网端口映射的组建情况!希望对你们有用!

篇二 : 端口映射内存映射…
#define[) A (* (volatile unsigned ) 0x48000000 )#define A ( (volatileunsigned *) 0x48000000 )对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射。如果系统结构支持独立的IO地址空间,并且是端口映射,就必须使用汇编语言完成实际对设备的控制,因为C语言并没有提供真正的“端口”的概念。

如果是内存映射,那就方便的多了。

举个例子,比如向寄存器A(地址假定为0x48000000)写入数据0x01,那么即可这样设置了:

#define A ((volatile unsigned ) 0x48000000 )… A =0x01;…

这实际上就是内存映射机制的方便性了。其中volatile关键字是嵌入式系统开发的1个重要特点。

volatile(可变的)这个关键字说明这变量可能会被绝对想不到地改变,这样编译器就不会去假设这个变量的值了。这种“绝对想不到地改变”,不是由程序去改变,而是由硬件去改变。

volatile 限定编译器不对这个指针的指向的存储单元进行优化,即不用通用寄存器暂时代替这个指针的指向的存储单元,而是每次取值都直接到指针的指向的存储单元取值.volatile主要用于变量会异步改变的情况下,主要有3个方面:

1.cpu外设寄存器

2.中断和主循环都会用到的全局变量

3.操作系统中的线程间都会用到的公共变量.

上述表达式拆开来分析:

首先(volatile unsigned *) 0x48000000的意思是把0x48000000强制转换成volatileunsigned类型的指针,即对指针的操作的范围是从0x48000000开始的四个字节(int型),暂记为p。那么就有:

#define A *p,即A为P指针指向位置的内容了。这里就是通过内存寻址访问到寄存器A,可以读/写操作!

映射 很自然想到 数学里面的 函数映射 有一一映射等 通过1个X 可以确定 1个或者多个Y

借用他人的1个比喻

“你家在1个小区里B栋2410室,你朋友来找你,找到小区门口,不知道你住哪层哪号?就问守门的保安,保安很客气的告诉了他你家详细门牌,所以你朋友很轻松的找到了你家。这个过程就是外网访问内网通过端口映射的形象比喻,”

端口映射 内存映射

来自网络的参考:

几乎每1种外设都是通过读写设备上的寄存器来进行的。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器3大类,而且1个外设的寄存器通常被连续地编址。CPU对外设IO端口物理地址的编址方式有2种:1种是I/O映射方式(I/O-mapped),另1种是内存映射方式(Memory-mapped)。而具体采用哪1种则取决于CPU的体系结构。

CPU的单一物理地址空间”就是指RAM,前文有描述”有些体系结构的CPU(如,PowerPC、m68k等)通常只实现1个物理地址空间(RAM)”。也就是说,这类结构(内存映射方式)的CPU只对RAM编址,其他对象如I/O,ROM等都要映射到RAM中才能被CPU访问。”而另外一些体系结构的CPU(典型地如X86)则为外设专门实现了1个单独地地址空间”,这类(I/O映射方式)CPU就是我们现在用的PC中的CPU,这类CPU的寻址空间不是分为常规内存/保留内存/扩展内存吗?其中的保留内存就是用来对I/O,ROM等的直接编址。但由于参与直接编址的I/O,ROM等的读的速度没有RAM快,所以主板提供了映射功能,映射后参与保留内存编址的实际也是物理RAM,这种情形下就跟内存映射方式类似了

有些体系结构的CPU(如,PowerPC、m68k等)通常只实现1个物理地址空间(RAM)。在这种情况下,外设I/O端口的物理地址就被映射到CPU的单一物理地址空间中,而成为内存的一部分。此时,CPU可以象访问1个内存单元那样访问外设I/O端口,而不需要设立专门的外设I/O指令。这就是所谓的“内存映射方式”(Memory-mapped)。 而另外一些体系结构的CPU(典型地如X86)则为外设专门实现了1个单独地地址空间,称为“I/O地址空间”或者“I/O端口空间”。这是1个与CPU地RAM物理地址空间不同的地址空间,所有外设的I/O端口均在这一空间中进行编址。CPU通过设立专门的I/O指令(如X86的IN和OUT指令)来访问这一空间中的地址单元(也即I/O端口)。这就是所谓的“I/O映射方式”(I/O-mapped)。与RAM物理地址空间相比,I/O地址空间通常都比较小,如x86 CPU的I/O空间就只有64KB(0-0xffff)。这是“I/O映射方式”的1个主要缺点。===========================================

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于端口映射和防火墙配置,可以按照以下步骤进行: 1. 端口映射 端口映射是将外网的请求通过路由器映射到内网的指定端口上。在应用程序部署在内网服务器上时,需要将部署的端口映射到外网,以供外部用户访问。端口映射需要在路由器上进行设置,具体的操作方式可能会因为不同的路由器品牌而有所不同。一般的步骤如下: - 打开路由器管理页面,登录后进行设置; - 找到端口映射或端口转发设置; - 输入内网服务器IP地址和需要映射的端口号; - 保存设置后,外部用户就可以通过路由器的公网IP地址和映射的端口号访问内网部署的应用程序了。 2. 防火墙配置 为了保证服务器的安全,需要对服务器上的端口进行防火墙配置,只允许指定的端口进行访问,其他的端口都要进行禁用。防火墙配置需要在服务器上进行设置,具体的操作方式可能会因为不同的操作系统而有所不同。一般的步骤如下: - 打开防火墙配置文件,例如Ubuntu系统上的配置文件为`/etc/ufw/applications.d/appname`,CentOS系统上的配置文件为`/etc/firewalld/zones/public.xml`; - 在配置文件中添加需要开启的端口,例如: ``` [appname] title=Application Name description=Application Description ports=8080/tcp, 3306/tcp ``` - 保存配置后,重新加载防火墙配置,例如: ``` sudo ufw app update appname sudo ufw allow appname ``` 或者 ``` sudo firewall-cmd --zone=public --add-service=appname --permanent sudo firewall-cmd --reload ``` 以上就是一个简单的端口映射和防火墙配置的流程,具体的操作可能会因为服务器环境、操作系统等因素而有所不同,需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值