原文地址: http://unmi.cc/windows-linux-port-forwarding/

这里记录一下我曾经使用过的几个端口转发工具,即端口映射、端口重定向,和 NAT 也是差不多的概念。

Linux 下用过 iptables,rinetd;Windows 下用过某个防火墙的 NAT 功能、RemoteAnywhere 的端口重定向、FPipe,还有最近刚找到的 PassPort。试着去设置一下 Windows 2000 的 NAT  功能,但未成功,还是特定的软件简单易用,下面介绍逐一介绍下。

iptables 的功能当然强大,但理解与设置却有点抽象,曾用它进行过透明代理上网,见:Linux 下仅用 iptables 实现为透明代理服务器。真要用它进行端口重定向太麻烦,会用它当然很方便的,在 Linux  平台下是开箱即用的,很多机器都安装了它。

rinetd,一直在用它,它可以多组端口映射写在配置文件里,好像只支持 TCP 协议。下载地址http://www.boutell.com/rinetd/http/rinetd.tar.gz,如何安装不细讲了,可以 apt-get install,或 yum install,或是 make/make install。

安装后,它默认使用 /etc/rinetd.conf 文件,比如通过入口机访问某台内网的远程桌面,或透过入口的 80 端口访问内网某机器的 8080 端口上的 Web 服务,可以这么写:

1
2
3
4
#通过 61.108.218.106:3389 进来的请求重定向给 10.80.10.7:3389
61.108.218.106 3389 10.80.10.7 3389
#任何接口进来请求80端口重定向给 10.80.10.8:8080
0.0.0.0 80 10.80.10.8 8080

格式是:【直接被访问的IP     端口号  重定向到机器IP  端口号】,中间用空格分开。

使用默认 /etc/rinited.conf 的话,直接执行 rinitd 就启用你所配置的端口重定向规则。如果不是用的默认文件就用参数 -c 指定配置文件,如 rinitd -c /home/unmi/rinitd.conf。另外还可以指定 allow 和 deny 规则,只需要 allow 关键字,可记录日志文件。只需在 rinited.conf 文件中再写上

1
2
3
#只允许 218.20.68.* 访问,未被允许的则视为禁止
allow 218.20.68.*
logfile /var/log/rinetd.log

请参考:http://www.boutell.com/rinetd/

rinetd 还出了 Windows 的版本,相应的下载地址是:http://www.boutell.com/rinetd/http/rinetd.zip。使用方式也是一样的,命令方式。

那个防火墙软件的 NAT 功能没什么可说,一般人都用不到。RemoteAnywhere 是可以进行远程管理的,它带了 Port Forwarding 功能,通过 Web 就能设置,相信为了简单的端口重定向功能,谁也不愿意装上这个累赘,况且还不免费。

最初在 Windows 上我还是用的 FPipe,也是命令行式的,支持 TCP 和 UDP 协议。执行一个命令重定向一个端口,不能把重定向规则写在配置文件中。当然,你愿意用批处理逐行读配置一次次执行 fpipe 命令也行得通的,规则多了小心屏幕一片黑。

FPipe 的下载和帮助界面见:http://www.foundstone.com/us/resources/proddesc/fpipe.htm.

它就只有一个可执行文件 fpipe.exe。直接执行 fpipe 会显示出它的命令说明的:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
C:\Documents and Settings\unmi>fpipe
FPipe v2.1 - TCP/UDP port redirector.
Copyright 2000 (c) by Foundstone, Inc.
<a href="http://www.foundstone.com/">http://www.foundstone.com</a>
 
FPipe [-hvu?] [-lrs <port>] [-i IP] IP
 
 -?/-h - shows this help text
 -c    - maximum allowed simultaneous TCP connections. Default is 32
 -i    - listening interface IP address
 -l    - listening port number
 -r    - remote port number
 -s    - outbound source port number
 -u    - UDP mode
 -v    - verbose mode
 
Example:
fpipe -l 53 -s 53 -r 80 192.168.1.101

比如,要完成上面 web 服务的重定向,以执行:

fpipe -i 61.108.218.106 -l 80 -r 80 -s 8080 10.80.10.8

这里多了一层概念,就是端口,1. 请求哪个端口,2. 定向到它机的端口,3. 数据从哪个端口出

支持 UDP 加 -u 参数,执行后命令窗口不关闭,并会显示连接日志。

Windows 下还是希望有图形界面的,那就是 PassPort,它是免费开源的,支持 TCP/UDP、可配置多组映射规则,修改规则后还无需重启,可作为 Windows 系统服务运行。好用的强力推荐的东西不能列在后头,还是另立一篇来说说它。

参考:1. 端口重定向Fpipe的用法

Windows 和 Linux 平台下的端口转发工具的更多相关文章

  1. Windows及Linux平台下的计时函数总结

    本文对Windows及Linux平台下常用的计时函数进行总结,包括精度为秒.毫秒.微秒三种精度的各种函数.比如Window平台下特有的Windows API函数GetTickCount().timeG ...

  2. Thrift在Windows及Linux平台下的安装和使用示例

    本文章也同时发表在个人博客Thrift在Windows及Linux平台下的安装和使用示例上. thrift介绍 Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的R ...

  3. Perl Tk在IC设计中的应用、Windows、Linux平台下的安装-各种错误的摸索解决

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <Perl Tk在IC设计中的应用.Windows.Linux平台下的安装-各种错误的摸索解决> Perl在IC设计中有 ...

  4. rinetd 一个linux下的端口转发工具

    inux下使用iptables实现端口转发,配置较为复杂,使用rinetd工具可以实现快速配置和修改端口转发. 例:本机ip:1.1.1.1 需要实现访问本机的8080端口,自动转发到2.2.2.2 ...

  5. 全平台正向tcp端口转发工具rinetd的使用

    Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.其实,Linux下有一个叫rinetd的工具,安装简单,配置也不复杂. 下载 ...

  6. windows和linux系统下测试端口连通性的命令

    0. ping 1. telnet 2. ssh 3. curl 4. wget 5. tcping 6. 总结 本文地址: https://www.cnblogs.com/hchengmx/p/12 ...

  7. AES加密在windows与linux平台下显示结果不同,解决方案

    现象描述: 在 windows 操作系统下加解密正常,但部署到 linux 环境中相同的输入加密结果不正确,并且每次运行返回的结果都不同.也就是说在windows下加解密都正常,一但部署到linux下 ...

  8. windows和linux平台下的通用时间测试函数

    Time.cpp ////////////////////////////////////////////////////////////////////////////// // Timer.cpp ...

  9. socklen_t在windows和linux平台下的头文件定义

    windows平台下:头文件:#include<ws2tcpip.h> linux平台下:下面两个头文件都有定义:1)#include <sys/socket.h>2)#inc ...

随机推荐

  1. idea如何导入一个maven项目

    1.import project 2.选择maven项目 3.选择第二个external moudle,选择maven, 4.点击next,一次点击1,2,3,4 5.设置maven环境 6.点击ok ...

  2. java 持有对象总结

    java提供了大量的持有对象的方式: 1)数组将数字和对象联系起来,它保存类型明确的对象,查询对象时,不需要对结果做类型转换,它可以时多维的,可以保存基本数据类型的数据,但是,数组一旦生成,其容量就不 ...

  3. Java编程的逻辑 (11) - 初识函数

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  4. yum list失败

    搭建了本地yum源,用yum list 测试报如下错误: [root@heguol ~]# yum   list error: rpmdb: BDB0113 Thread/process ye67ww ...

  5. Card Game Cheater HDU1528

    二分图最大匹配问题 扑克题还是用map比较方便 #include<bits/stdc++.h> using namespace std; #define MAXI 52 ]; ]; int ...

  6.  sublime text3快速生成html头部信息(转)

    sublime text3快速生成html头部信息  https://blog.csdn.net/sunshinegirl_7/article/details/49802579 经常见别人创建新的ht ...

  7. 018.Zabbix维护时间和模板导入

    一 维护时间 在某些正常业务维护期间,不需要进行告警,可添加维护时间. 二 维护时间添加 2.1 维护 参数 描述 Name 维护名称 Maintenance type 两种维护类型可选: With ...

  8. Android 短信拦截及用途分析

    监听系统短信这个只能作为一个技术点来研究下,读者可能在工作中可能不会哦涉及到,一般的应用软件也不会有这个需求 但是作为程序员呢,多了解一下也是好的. Android 监听系统短信有什么用? 1.对系统 ...

  9. mysql分库分表那些事

    为什么使用分库分表? 如下内容,引用自 Sharding Sphere 的文档,写的很大气. <ShardingSphere > 概念 & 功能 > 数据分片> 传统的 ...

  10. 数据包发包工具bittwist

    数据包发包工具bittwist   渗透测试中,通过发送特定格式的包,可以实施网络嗅探和攻击.Kali Linux提供一款发包工具bittwist.该工具可以通过指定的网络接口发送数据.该工具不仅可以 ...