Linux-Windows 端口转发

https://www.cnblogs.com/operationhome/p/11284559.html

之前自己学习过 netsh

也曾经用过frp

这次学习一下表 rinetd 

感觉工具有很多 需要一直保持学习的心态. 

在实际的生产环境中,我们为了安全性,会将一些重要的服务(数据库服务)不开放外网访问,但是当我们某个时刻由于一些特殊需求,需要进行外网访问的时候,我们可以通过端口转发来实现。通过一台和与服务可以互相访问的主机,通过该主机进行端口转发。

  • Windows 端口转发
  • Linux 端口转发

一、Windows 端口转发

windows 主要是通过 netsh 进行端口转发。

listenaddress  # 本地监听的ip
listenport # 本地监听的端口

connectaddress # 转发请求接收的主机ip
connectport # 转发请求接收的主机的端口
# 执行命令
netsh  interface  portproxy    add  v4tov4  listenaddress=localip  listenport=localport connectaddress=remoteip  connectport=remoteport
# 查看现有的配置
netsh  interface  portproxy show all
# 删除原有的端口转发
 netsh  interface  portproxy    delete   v4tov4  listenaddress=localip listenport=localport

示例

设置将请求到 本地 IP 192.168.15.89 的端口请求 2222 转发到 192.168.15.35 端口 22

注意: 下面的命令需要用管理员执行。

netsh  interface  portproxy    add  v4tov4  listenaddress=192.168.15.89  listenport=2222  connectaddress=192.168.15.35  connectport=22
PS C:\WINDOWS\system32> netsh  interface  portproxy show all

侦听 ipv4:                 连接到 ipv4:

地址            端口        地址            端口
--------------- ----------  --------------- ----------
192.168.15.89   2222        192.168.15.35   22

二、Linux 端口转发

1、rinetd

简介

官方文档 :https://boutell.com/rinetd/

下载 https://boutell.com/rinetd/http/rinetd.tar.gz

rinetd 可以将 TCP 连接从一个 IP 地址和端口重定向到另外一个 IP 地址和端口。rinetd 是一个单进程服务(非阻塞IO进程),它可以处理配置文件/etc/rinetd.conf中指定的地址和端口中任意数量的连接。rinetd 不能重定向 FTP,因为 FTP 需要多个 socket。 rinetd 可以在 Linux 平台上运行,也可以在 Windows 95/98/NT 平台上运行。

安装:

wget https://boutell.com/rinetd/http/rinetd.tar.gz
tar -xzf  rinetd.tar.gz
yum  install gcc -y
cd  rinetd
# (修改端口范围)
sed -i 's/65536/65535/g' rinetd.c
# 创建目录
mkdir /usr/man
# 解压安装
make && make install

配置文件

配置转发

配置文件的转发书写规则,可以配置多个转发。

bindaddress bindport connectaddress connectport

示例:

0.0.0.0 2222  192.168.15.89 22
0.0.0.0 3333  192.168.15.89 80

配置过滤规则

rinetd 可以使用过滤规则,来设定可以访问的主机。(只能使用ip,不能使用主机名)

注意: 填写的位置应该位于文件的开头

allow  #设置允许访问的主机
deny   #设置拒绝访问的主机

示例:拒绝 192.168.15 整个网段的请求。

deny 192.168.15.*

配置日志文件

默认情况下, rinetd 不会生成日志文件。要激活日志记录,请将以下行添加到配置文件中:

logfile log-file-location

示例:注意 logfile 与后面路径只有一个空格哦。

logfile /var/log/rinetd.log

配置文件示例:

deny 192.168.15.*
0.0.0.0 2222  192.168.15.89 22
0.0.0.0 3333  192.168.15.89 80
logfile /var/log/rinetd.log

写入配置文件

echo  <<EOF  >/etc/rinetd.conf
deny 192.168.15.*
0.0.0.0 2222  192.168.15.89 22
0.0.0.0 3333  192.168.15.89 80
logfile /var/log/rinetd.log
EOF

运行和管理

# 启动 rinetd
rinetd

# 设置开机自启
echo rinetd >>/etc/rc.local

# 暂停 ,通过kill pid
kill `cat   /var/run/rinetd.pid`

# 使用其他配置文件
rinetd -c  /opt/rinetd.conf

我们在上面使用的端口,记得在防火墙添加放行规则。

iptables 和 Firewalld 进行端口转发的话我们后面进行补充。

作者:理想三旬
如果觉得文章写得不错,或者帮助到您了,请点个赞,加个关注哦。运维学习交流群:544692191
本文版权归作者所有,欢迎转载,如果文章有写的不足的地方,或者是写得错误的地方,请你一定要指出,因为这样不光是对我写文章的一种促进,也是一份对后面看此文章的人的责任。谢谢。
 
分类: linuxwindows

[转帖]Linux-Windows 端口转发 netsh 还有 rinetd的更多相关文章

  1. windows 端口转发 netsh

    原文地址 listenaddress # 本地监听的ip listenport # 本地监听的端口 connectaddress # 转发请求接收的主机ip connectport # 转发请求接收的 ...

  2. LINUX 实现端口转发 - 安装使用rinetd

    网上查找安装rinetd 安装时候问题如下一致,找到此文,方解决. 源地址 系统环境:centos 5.4 系统需要gcc组件 yum -y install gcc*  安装完毕以后 首先下载wget ...

  3. windows 端口转发

    1.添加端口转发 netsh interface portproxy add v4tov4 listenport=5000 listenaddress=10.30.3.148 connectport= ...

  4. Linux通过端口转发来访问内网服务(端口转发访问阿里云Redis数据库等服务)

    # 安装rinetd wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz& ...

  5. linux设置端口转发(一键设置)

    linux设置端口转发 #下载rinetd程序并进入文件夹 wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xv ...

  6. 一文打尽 Linux/Windows端口复用实战

    出品|MS08067实验室(www.ms08067.com) 本文作者:Spark(Ms08067内网安全小组成员) 定义:端口复用是指不同的应用程序使用相同端口进行通讯. 场景:内网渗透中,搭建隧道 ...

  7. Windows端口转发

    1. PortTunnel 2. windows 自带的 netsh -----windows下也有一个小工具:portforward.exe,图形界面容易操作,个人平常使用可以,但是也没有办法实现与 ...

  8. 内网端口转发[netsh]

    一.利用场景 当前获取目标内网边界区域一台机器,可以通外网和内网也就是存在两块网卡,又通过其他手段获取到内网另外一台机器,但是这台机器不能出外网,所以我们可以使用windows自带netsh命令通过边 ...

  9. Linux IPTABLES端口转发

    之前在Linux上用普通用户部署了一个Tomcat,然后将其server.xml中的端口配置为80端口,用普通用户运行就提示绑定端口失败(permission denied),google了一下,原来 ...

随机推荐

  1. P1484 种树——数据结构优先队列

    种了一下午的树,终于给搞明白了((多谢各位大神的题解)(题解就不能讲清楚点吗(看不见看不见))): 你有k个树,你可以种在一条直线上,每个位置都有一个价值,如果你把树种在这里就可以获得这个价值,但是条 ...

  2. 内存管理2-set方法的内存管理

    1.对象之间的内存管理: 每个学生都有一本书 book类 @price 学生类  @age @book -------------------- #import "book.h" ...

  3. AcWing:241. 楼兰图腾(树状数组逆序对)

    在完成了分配任务之后,西部314来到了楼兰古城的西部. 相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(‘V’),一个部落崇拜铁锹(‘∧’),他们分别用V和∧的形状来代表各自 ...

  4. JavaWeb_(Mybatis框架)MyBatis Generator简单入门

    官方文档 传送门 下载地址 传送门 MyBatis Generator(MBG)简介: MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器.它将为 ...

  5. elasticsearch _all

    在轻量搜索中,我们介绍了 _all 字段:一个把其它字段值 当作一个大字符串来索引的特殊字段. query_string 查询子句(搜索 ?q=john )在没有指定字段时默认使用 _all 字段._ ...

  6. docker运行puppeteer出现Page crash解决方案

    Docker默认文件空间64MB.如果puppeteer运行的时候超过这个内存就出现了.Page crash.可以使用docker run --shm-size=256m指定一个更大的内存即可.

  7. Maven的New中没有Servlet问题(IDEA)

    1.问题 第一次使用Maven骨架创建Web项目的时候,遇到了 New 里面没有 servlet 的问题. 2.原因 经过查询,是因为IDEA检测到项目中没有导入相关的 jar 包导致. 3.解决方法 ...

  8. Java实现线程的三种方式和区别

    Java实现线程的三种方式和区别 Java实现线程的三种方式: 继承Thread 实现Runnable接口 实现Callable接口 区别: 第一种方式继承Thread就不能继承其他类了,后面两种可以 ...

  9. getBoundingClientRect使用指南

    getBoundingClientRect使用指南 author: @TiffanysBear 主要介绍getBoundingClientRect的基本属性,以及具体的使用场景和一些需要注意的问题. ...

  10. Flutter移动电商实战 --(36)FlutterToast插件使用

    https://github.com/PonnamKarthik/FlutterToast fluttertoast: ^3.0.1 category_page.dart页面添加引用 import ' ...