它也不是汇编指令,一般是一个宏定义,所以汇编也是查不到的。
linux内核可以调用ioremap把io端口映射到一个虚拟内存地址,这样可以把io端口的读写 *** 作统一为内存访问。
ioremap之后,outb可以向映射后的地址写一个字节,其效果相当于对映射的io端口写一个字节。
可以。请参考下面的设定:【实现功能】
PC A是
eth0 172.18.10.212 内网
eth1 219.239.xx.xx 外网
PC B是172.18.10.205 内网
A的8080端口映射到B的80端口
【步骤】
1、 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0
这样允许iptalbes FORWARD。
2、 在/etc/rc.d/init.d目录下有iptables 文件,使用格式如下
Usage: ./iptables {start|stop|restart|condrestart|status|panic|save}
相当与service iptables {....}
把iptables 服务停止,清除以前的规则,存盘
到/etc/rc.d/init.d目录下,运行
./iptables stop
iptalbes -F
iptalbes -X
iptalbes -Z
./iptables save
3、 重新配置规则
iptables -t nat -A PREROUTING -d 219.239.xx.xx -p tcp --dport 8080 -j DNAT --to-destination 172.18.10.205:80
iptables -t nat -A POSTROUTING -d 172.18.10.205 -p tcp --dport 80 -j SNAT --to 172.18.10.212
iptables -A FORWARD -o eth0 -d 172.18.10.205 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -s 172.18.10.205 -p tcp --sport 80 -j ACCEPT
DNAT SNAT 的请参考帮助,这里不再陈述。
4、 新的规则存盘
./iptables save
规则存盘后在/etc/sysconfig/iptables这个文件里面,若你对这个文件很熟悉
直接修改这里的内容也等于命令行方式输入规则。
5、 启动iptables 服务
./iptables start
在/proc/net/ip_conntrack文件里有包的流向,如下面
tcp 6 53 TIME_WAIT src=../../221.122.59.2 dst=219.239.xx.xx sport=7958 dport=8080 packets=9 bytes=1753
src=../../172.18.10.205 dst=172.18.10.212 sport=80 dport=7958 packets=9 bytes=5777 [ASSURED] use=1
本地端口映射(Local Port Forwarding):目标:将本地端口的数据转发到远端端口
应用场景:当我们需要拥有公网IP的远程主机做跳板,登陆到与远程主机同一个局域网的一台非公网IP机器时,可以在公网IP的远程主机做本地端口映射,转发到非公网IP机器上。这样就只要一次ssh到公网IP主机做了映射的端口就登陆到非公网IP主机上了。
远端端口映射(Remote Port Forwarding):
目标:将远端端口的数据转发到本地端口
应用场景:局域网主机可以通过公网IP访问远程主机,但是反过来的时候,如果不建立VPN,则可以通过在局域网机器上做远端端口映射,这样通过公网机器就能直接ssh到局域网机器。
动态端口映射(Dynamic Port Forwarding):
目标:充当SOCKS代理
应用场景:在浏览器中访问某些受局域网防火墙限制的网页时,就可以通过在本地机器做动态端口映射,代理到未受限制的主机上去访问。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)