通过rinetd实现端口转发来访问内网的服务

一、   问题描述

通过外网来访问内网的服务

二、   环境要求

需要有一台能够外网访问的机器做端口映射,通过数据包转发来实现外部访问阿里云的内网服务

三、   操作方法

做端口映射的方案有很多,Linux下的ssh tunnel和windows下的portmap等等,这里分享一个更稳定和简单的小工具rinetd

四、   下载安装

$ wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

$ tar -xvf rinetd.tar.gz

$ cd rinetd

# 修改端口范围,否则会报错

$ sed -i 's/65536/65535/g' rinetd.c

$ mkdir /usr/man&&make&&make install

五、   创建配置文件:

$ vim /etc/rinetd.conf

# allow 192.168.2.*

# deny 192.168.1.*

# bindaddress bindport connectaddress connectport

114.215.143.167 4408 10.174.205.239 3306

logfile /var/log/rinetd.log

六、   加入到开机启动脚本中

$ echo rinetd >> /etc/rc.local

$ cat /etc/rc.local

七、   启动 rinetd

$ rinetd -c /etc/rinetd.conf

# 检查进程是否启动

$ ps aux | grep -I rinetd

# 检查监控的端口是否开启

$ netstat -tanop | grep 4408

八、   验证

待 rinetd启动后,就已经可以通过外网的4408端口连接到处于内网模式的10.174.205.239:3306数据库了

九、   其他说明

除了这个场景,其它的内网端口转发也都可以(由于FTP协议相对特殊,无法实现转发)

配置文件中可以对某个IP或者IP段进行允许/拒绝,藉此提高内网端口的安全性。

如果二者冲突,拒绝优先。

rinetd也有Windows版本,配置方法完全相同,在此不再赘述。 如果你是ubuntu系统,使用:apt-get install rinetd -y 就可以实现安装。

最新文章

  1. IOS静态库
  2. iPhone的CSS3媒体查询
  3. MVC部分视图(Partial View)
  4. 随笔—邀请赛前训— Codeforces Round #330 (Div. 2) Vitaly and Night
  5. Eclipse中使用Git-让版本管理更简单
  6. [Bootstrap]全局样式(二)
  7. 基于.NET平台常用的框架和开源程序整理
  8. VB的写法,关于版本写入注册表
  9. Screen tearing
  10. golang kafka
  11. Python day 7(2) 类和实例(1)
  12. sql是最成功的第四代语言
  13. 依赖配置中心实现注有@ConfigurationProperties的bean相关属性刷新
  14. The current state of generics in Delphi( 转载)
  15. [转]data-driven与决策树聚类的两种方法
  16. 互联网进行限流策略的Semaphore信号量使用
  17. CSS 之 伪类及伪元素
  18. 配置tomcat server.xml 文件 ,虚拟路径
  19. DBCC--OPENTRAN
  20. [转帖] Oracle JDK 11 正式发布.. 版本号真快

热门文章

  1. 使用 IntraWeb (42) - 测试读取 SqLite (一)
  2. 20145225《Java程序设计》 2015—2016年学期课程总结
  3. 基于选择重传ARQ传输协议的数据重传机制方案设计
  4. 【Maven】使用Maven构建多模块项目
  5. Coredata 的deletedObjects 方法的使用 附带终止程序的函数
  6. Linux部署apache
  7. APNS推送通知消息负载内容和本地格式字符串
  8. 关于用CSS3画图形的一些思考
  9. How to configure windows machine to allow file sharing with dns alias (CNAME)
  10. hive数据类型学习