查看: 6074|回复: 16

巧用端口映射 不通过网关开放任意内网

[复制链接]
发表于 2010-6-21 08:49:43 | 显示全部楼层 |阅读模式
关键词: 端口 , 内网 , 网关 , 映射
  今天给大家说说如何巧用端口映射,不通过网关开放内网的方法。
  一:使用前提
  需要有一台公网的IP。假如现在我们有一台公网的P :210.210.21.21
  二:用到的工具
  1.lcx.exe
  2.vdic
  三:方法讲解
  方法一:用lcx.exe进行映射。
  (1)我们将lcx.ex e传到公网IP上,在公网IP上DOS环境下执行 lcx –listen 端口1 端口2
  如lcx –listen 3030 3166
  此命令的意思是监听3030端口和3166端口,以便和外部进行连接。
  (2)将lcx.exe下载到要开放的内网的计算机上,然后在DOS环境下执行 lcx –slave 公网IP 端口 内网IP 端口
  如lcx -slave 211.211.21.21 3030 172.16.32.153 80
  解释一下,这句话的意思是说将内网计算机IP为 172.16.32.153 的80端口(也就是WEB 服务端口)
  映射到公网IP为210.210.21.21的3030端口上,这样,内网和公网的计算机就建立 起了连接。 如果你
  内网计算机提供WEB服务,现在,只要通过外网IP 210.210.21.21和端口3166 可以访问内网的网站了。
  开放IP前,访问地址 http://172.16.32.153/index.htm
  开放IP后,访问地址 http://210.210.21.21:3166/index.htm
  方法二:用VIDC
  我们将vidcs.exe传到公网IP上,在公网计算机上运行vidcs –p端口,如vdics –p5205
  这句话的意思是在公网计算机上监听端口 5205 然后回到内网计算机上,直接点击运行vIDCc.exe
  解释一下上面的设置: VIDC服务IP,指运行了vidcs.exe进行监听了端口的IP地址,端口指是在公网上监听的端口,上面我监听的是5205端口,bindip指你要开放出去的内网的IP, Bind端口指你内网计算机需要开放的端口(FTP服务器端口为21, WEB 服务端口为80, mail服务端口25)你想开放哪个就填哪个吧。
  映射端口指你想通过公网哪个端口提供服务。端口由你定,填好之后,我们点”连接”,马上就到收到提示Success to Connect(210.210.21.21:5205,ver:1.2), 说明连接成功。继续点”bind”,同样会收到成功的提示。
  这样,你的机子的80端口就开放出去了。 访问方法 http://公网ip:映射端口。
  如 http://210.210.210.210:8080
  上面就是两种不通过网关开放内网的方法。
发表于 2010-6-21 09:08:21 | 显示全部楼层
发表于 2010-6-21 09:09:17 | 显示全部楼层
比直接用NAT有啥子优势呢
 楼主| 发表于 2010-6-21 09:46:09 | 显示全部楼层
nat有这个功能吗?说说。
发表于 2010-6-21 13:18:42 | 显示全部楼层
常用的NAT就是个端口映射,比如外网的80端口,映射到内网某IP的的800端口
发表于 2010-6-21 21:59:52 | 显示全部楼层
会计不玩网站吗?
 楼主| 发表于 2010-6-22 09:51:13 | 显示全部楼层
nat是影射,我说的穿墙。两码事。
 楼主| 发表于 2010-6-22 09:52:56 | 显示全部楼层
困扰了我好几天的穿墙端口检测如此简单:

nc  -vv -z -w2 amd.9966.org 2-3000
返回的是timeout属于被墙的端口。
返回的fialed,sucesse属于墙上的洞。这次真的找到不少洞。

准备自己架设个代理服务器。
 楼主| 发表于 2010-6-24 14:22:25 | 显示全部楼层
找了好几天,还是用ncsa验证最省事,对系统改动最小。

NCSA是squid内置的一种认证模式,这个配置比较简单,squid.conf 需要添加如下内容

auth_param basic program /usr/lib/squid/ncsa_auth    /etc/squid/passwd    #认证文件为/etc/squid 下的passwd
auth_param basic children 10       #开启10个进程
auth_param basic realm My Proxy  #显示在认证对话框上的字符串
auth_param basic credentialsttl 1 hour   #认证在内存中维持的时间为1小时
acl KnownUsers proxy_auth REQUIRED
http_access allow KnownUsers

添加用户利用的是Apache的htpasswd

htpasswd  -c  /etc/squid/passwd  test (第一次添加用户要有-c)

按照要求输入密码,然后重启squid 即可!
 楼主| 发表于 2010-6-25 17:44:11 | 显示全部楼层
我仔细看了一下,linux ssh本身就带着个功能。
但是,linux 会自动断掉,得写个shell解决,或者在找别的办法。
说白了,就是端口转发。
发表于 2010-7-1 14:10:36 | 显示全部楼层
困扰了我好几天的穿墙端口检测如此简单:

nc  -vv -z -w2 amd.9966.org 2-3000
返回的是timeout属于被墙的端口。
返回的fialed,sucesse属于墙上的洞。这次真的找到不少洞。

准备自己架设个代理服务器。
wangkj 发表于 2010-6-22 09:52


这么检查不对吧
发表于 2010-7-1 14:14:30 | 显示全部楼层
这个问题主要是无公网IP问题, 不是墙的问题.

Squid本身就有分流功能.

ssh有socket通道不过是client方式的. 这种情况不适合.


我一会查个最简单的实现方式.
 楼主| 发表于 2010-7-1 15:43:55 | 显示全部楼层
说啊?
发表于 2010-7-1 21:46:32 | 显示全部楼层
我仔细查了下, 好像最好的解决思路就是这个lcx用的思路.

以上2个工具, 均出自yyc之手. 经我测试, 程序设计在当时应该算最优(这个程序05年就出来了, 估计04年就有思路). 采用了多线程解决tcpserver的冲击问题.


这个缺点在于, 性能有限, 不适合服务器布置. (3000一下冲击的网站还是可以的.)

我本想用VPN+iptable解决, 查了查, VPN也要看NAT是否支持.


关于这个端口转换, 我希望知道以下信息:
1, 公网ip主机是有域名的, 也就是有固定独立ip的吧.
2, 这个公网主机使用什么操作系统
3, 网站系统为什么不布置在公网主机上, 各种消耗都不大.
4, 端口转换后, 如何保证内网主机的一直开机和性能等要求.


维护一个这样程序的难度, 比直接用ssh登陆主机管理困难的多.
用lcx测试, 也能看到很多无法解决的bug, 比如, 传递到3000端口, 3000端口服务关了怎么办? lcx表现为死循环!
发表于 2010-7-2 08:15:33 | 显示全部楼层
转发:

公网外部可以访问,私网不行。私网访问公网是主动发起,公网可以被找到。找到后公网就知道私网了,端口之间交换数据
比如A是服务器,B是网站系统,C是普通用户。首先是B访问A,A知道了B,A再把C对A相应端口的数据请求转发给对B的请求。
类似实际工程应用我们去年用在城市行业网络的架设上。
发表于 2010-7-2 09:04:54 | 显示全部楼层
转发:

公网外部可以访问,私网不行。私网访问公网是主动发起,公网可以被找到。找到后公网就知道私网了,端口之间交换数据
比如A是服务器,B是网站系统,C是普通用户。首先是B访问A,A知道了B,A再把C对A相应端 ...
node 发表于 2010-7-2 08:15


这个大体的思路和这两个程序是类似的.

不过, 一般使用的都是通道转发.


看看这两个程序, 可都是服务器端口转发. 这个就有些难度, 维护上, 难度也大于直接弄虚拟主机, 稳定性上, 也不好保证, 所以一般只用于hacker领域.
发表于 2010-8-12 13:01:34 | 显示全部楼层
学习了,长见识
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表