找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 13558|回复: 5

请问如何端口映射到virtual**客户端?

[复制链接]
发表于 2010-10-28 22:12 | 显示全部楼层 |阅读模式
本帖最后由 quine 于 2010-10-28 22:27 编辑

我这里一个tomato路由器做 openvirtual** server
内网ip:192.168.1.1
外网ip:  PPPoE拨号,所以申请了xxx.3322.org动态域名
virtual** server设置里勾选了 Direct clients to redirect Internet traffic

virtual**客户通过联通3g网络上网,有公网ip但没法设置nat,所以就作为virtual**客户端访问openvirtual** server
获得一个virtual**的ip:192.168.1.101 (tap模式)

现在tomato路由器下面的内网子机(192.168.1.0/24)可以跟virtual**客户端(192.168.1.101 )之间互访,virtual**客户端也可以通过openvirtual** server访问internet(这时访问ip检查页面得到的是openvirtual** server的外网ip)。

但是在tomato路由器上设置了NAT后(12345 -> 192.168.1.101),在外面通过internet却无法访问到virtual**客户端。
把192.168.1.101替换为一个实际的内网子机(192.168.1.0/24)就正常。

我在virtual**客户端上安装了一个tcp server测试软件,从internet上访问 xxx.3322.org:12345 无效,但virtual**客户端的tcp server测试软件上有反应,似乎是tcp server测试软件收到了数据包但反馈的数据包没有正确返回。

有人折腾过吗?
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2010-10-28 22:25 | 显示全部楼层
这里有人提到一样的用法,不过不是tomato固件
http://bbs.mikrotik.com.cn/thread-6149-1-1.html
[求助] ROS该怎样给virtual**客户端做dst端口映射
ROS, dst, virtual**, 客户端, 端口
外网卡接口固定IP为 61.143.15.55  内网卡IP为192.168.1.1  网吧本地局域网
网段为192.168.1.1/24   ,virtual**用的PPTP, 设置的Local Address为
10.10.10.254   Remote Address为10.10.10.53 也就是virtual**客户端拨上virtual**后的内
网地址为10.10.10.53,防火墙的NAT规则那里分别为本地局域网段和10.10.10.53
设置源地址转换方法为masquerade,设置好后virtual**客户端能访问外网,在
10.10.10.53也就是virtual**客户端上架设web服务器设置端口为8888。为了能让外网别
IP也能访问到virtual**客户端上的web服务,我在nat规则那里又做了dst映射,nat规则
设置为         chain=dstnat   dst-address=61.143.15.55  protocol=tcp   
dstport=8888 action=dst-nat   to-addresses=10.10.10.53  to-ports=8888   
设置好后我叫朋友用8888端口访问下virtual**客户端上web服务器器,测试用的简单的
首页能正常打开,virtual**客户端的上web服务器日志上显示的是我朋友的外网IP,再
继续测试下载web服务器中的文件时迅雷上显示下载速度只有4K/S,但是我朋友下
载网吧服务器192.168.1.248上的FTP中的文件就很快速度能达到200KB/S,  
192.168.1.248的21端口也是用的一样的dst映射,然后我断开virtual**连接用自己原来
的ADSL做web服务器,再叫朋友下载web服务器上的文件,迅雷上显示的速度稳定
为40K/S,为什么在virtual**客户端上做web服务器外网IP访问就这么慢呢,以前用单网
卡的windows2003系统做virtual**服务器然后再给virtual**客户端做dst端口映射,外网IP下
载virtual**客户端web上的文件也能有100K左右的速度,现在换了双网卡的ROS做virtual**服
务器再给virtual**客户端做dst端口映射外网访问速度就这么慢呢,希望能出现高手帮
我解决这个问题。


不过我对iptables防火墙命令不熟悉,不知道该如何实现,我现在只是在tomato的port forwarding页面设置了一下端口映射。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2010-10-28 22:51 | 显示全部楼层
2# quine


Openvirtual** Server与Client之间采用桥接模式连接.
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2010-10-29 11:43 | 显示全部楼层
本帖最后由 quine 于 2010-10-29 11:44 编辑

谢谢ls的,已经采用了 tap 桥接模式。

另外,贴上 NAT 规则,请高人帮忙看一下什么地方还需要修改
  1. Chain PREROUTING (policy ACCEPT 6718 packets, 745K bytes)
  2. pkts bytes target     prot opt in     out     source               destination
  3.     0     0 DROP       0    --  ppp+   *       0.0.0.0/0            192.168.1.0/24
  4.    28  1696 DNAT       icmp --  *      *       0.0.0.0/0            x.x.x.x         to:192.168.1.1
  5.     0     0 DNAT       tcp  --  *      *       0.0.0.0/0            x.x.x.x         tcp dpt:xxxxx to:192.168.1.1:22
  6.     0     0 DNAT       tcp  --  *      *       0.0.0.0/0            x.x.x.x         tcp dpt:12345 to:192.168.1.101:12345
  7.     0     0 upnp       0    --  *      *       0.0.0.0/0            x.x.x.x

  8. Chain POSTROUTING (policy ACCEPT 9008 packets, 545K bytes)
  9. pkts bytes target     prot opt in     out     source               destination
  10.    12   720 SNAT       tcp  --  *      *       192.168.1.0/24       192.168.1.101        tcp dpt:12345 to:x.x.x.x
  11. 6051  687K MASQUERADE 0    --  *      ppp+    0.0.0.0/0            0.0.0.0/0
  12.   209 60210 MASQUERADE 0    --  *      *       192.168.1.0/24       0.0.0.0/0

  13. Chain OUTPUT (policy ACCEPT 1306 packets, 129K bytes)
  14. pkts bytes target     prot opt in     out     source               destination
复制代码
注:x.x.x.x是tomato路由器的外网ip
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2010-10-31 19:59 | 显示全部楼层
本帖最后由 quine 于 2010-11-1 17:41 编辑

偶然发现从virtual**客户端(192.168.1.101)不能ping 通路由器的外网ip x.x.x.x(但可以ping通192.168.1.1),而从实际的内网子机(192.168.1.0/24)却可以。

所以参考这篇文章
http://www.blogjava.net/alwayscy/archive/2007/11/18/161423.html
把SNAT规则里的
  1. pkts bytes target     prot opt in     out     source               destination
  2.    12   720 SNAT       tcp  --  *      *       192.168.1.0/24       192.168.1.101        tcp dpt:12345 to:x.x.x.x
复制代码
最末尾的to:x.x.x.x替换成to:192.168.1.1就行了,这样数据包就能正常返回到路由器了。

现在到tomato的Port Forwarding设置页面里取消了 12345 -> 192.168.1.101的端口映射规则,改为到Administration>Scripts>Firewall页面里手动添加如下三行
  1. iptables -t nat -A PREROUTING -p tcp -m tcp --dport 12345 -j DNAT --to-destination 192.168.1.101:12345
  2. iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.101 -p tcp -m tcp --dport 12345 -j SNAT --to-source 192.168.1.1
  3. iptables -A FORWARD -d 192.168.1.101 -p tcp --dport 12345 -j ACCEPT
复制代码
因为不知道Port Forwarding设置页面是如何自动生成iptables命令行里的实际的外网ip(动态域名的ip),所以手动添加时就没在DNAT规则里指定目标ip,虽说也能正常使用,但不知道会有啥问题不。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-9-15 14:48 | 显示全部楼层
嗯,留存备用。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-26 15:42

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表