免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2326 | 回复: 2
打印 上一主题 下一主题

用ipnat对外网动态IP地址重定向到内网的简单解决方法。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-16 23:22 |只看该作者 |倒序浏览
(用了两天的时间来解决这个问题很有收获,下面是我的解决过程。by:slgx)
大家知道用ipnat把外网动态的ip地址重定向到内网的服务器上是很麻烦的一件事。
简单的说就是在/etc/ipnat.rules文件中:
map tun0 192.168.1.1/32 ->; 0/32 是可以的,但是
rdr tun0 0/32 port 80 ->; 192.168.1.1/32 port 80 tcp 却不可行。
虽然ipnat能够接受上面的格式,但实际上是不会执行重定向的。
ipnat并不会把0/32套用成外部地址a.b.c.d/32的样式。
我第一想到的是:用PPP自带的重定向(详见PPP man),操作起来非常简单,但效率不高。
然后就是网上高手写出的:用PPP的ppp.linkup文件用自编的脚本捕捉动态外网ip再生成a.b.c.d/32样式的
ipnat.rules文件。很明显这样作能够完成我们的要求,但实现其来很烦琐。
能不能直接写出符合动态ip地址重定向的ipnat.rules文件呢?
我在网上查到下面的写法:
rdr tun0 from any to any port = 80 ->; <internal ip>; port 80 tcp
rdr tun0 <your.host.name>;/32 port 80 ->; <Web IP>; port 80 tcp
上面的例子都回避了直接写出外网动态ip这个难题,实际上它们都是通不过的。
虽然行不通但却启发我想到map的一种写法:
map tun0 192.168.1.0/24 ->; 0/32
幸运的是rdr也支持类似的写法。假设外网动态地址属于a.b.c.0/24网段
rdr tun0  a.b.c.0/24 port 80 ->; 192.168.1.10 port 80 tcp
只要动态地址不出这个网段rdr就能正确的重定向。
很简单吧,推崇大家试试。

论坛徽章:
0
2 [报告]
发表于 2003-07-17 12:33 |只看该作者

用ipnat对外网动态IP地址重定向到内网的简单解决方法。

可以用rdr中的参数: 0/0 , 而不是0/32 !
详见:
http://www.huangdong.com/bbs/showthread.php?s=&threadid=76&perpage=15&pagenumber=1

论坛徽章:
0
3 [报告]
发表于 2003-07-17 13:13 |只看该作者

用ipnat对外网动态IP地址重定向到内网的简单解决方法。

原帖由 "i2era" 发表:
可以用rdr中的参数: 0/0 , 而不是0/32 !
详见:
http://www.huangdong.com/bbs/showthread.php?s=&threadid=76&perpage=15&pagenumber=1
   

这个我后来想到了:用0/0更彻底,匹配所有网址。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP