[转帖]Linux-Windows 端口转发 netsh 还有 rinetd
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
进行端口转发的话我们后面进行补充。
[转帖]Linux-Windows 端口转发 netsh 还有 rinetd的更多相关文章
- windows 端口转发 netsh
原文地址 listenaddress # 本地监听的ip listenport # 本地监听的端口 connectaddress # 转发请求接收的主机ip connectport # 转发请求接收的 ...
- LINUX 实现端口转发 - 安装使用rinetd
网上查找安装rinetd 安装时候问题如下一致,找到此文,方解决. 源地址 系统环境:centos 5.4 系统需要gcc组件 yum -y install gcc* 安装完毕以后 首先下载wget ...
- windows 端口转发
1.添加端口转发 netsh interface portproxy add v4tov4 listenport=5000 listenaddress=10.30.3.148 connectport= ...
- Linux通过端口转发来访问内网服务(端口转发访问阿里云Redis数据库等服务)
# 安装rinetd wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz& ...
- linux设置端口转发(一键设置)
linux设置端口转发 #下载rinetd程序并进入文件夹 wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xv ...
- 一文打尽 Linux/Windows端口复用实战
出品|MS08067实验室(www.ms08067.com) 本文作者:Spark(Ms08067内网安全小组成员) 定义:端口复用是指不同的应用程序使用相同端口进行通讯. 场景:内网渗透中,搭建隧道 ...
- Windows端口转发
1. PortTunnel 2. windows 自带的 netsh -----windows下也有一个小工具:portforward.exe,图形界面容易操作,个人平常使用可以,但是也没有办法实现与 ...
- 内网端口转发[netsh]
一.利用场景 当前获取目标内网边界区域一台机器,可以通外网和内网也就是存在两块网卡,又通过其他手段获取到内网另外一台机器,但是这台机器不能出外网,所以我们可以使用windows自带netsh命令通过边 ...
- Linux IPTABLES端口转发
之前在Linux上用普通用户部署了一个Tomcat,然后将其server.xml中的端口配置为80端口,用普通用户运行就提示绑定端口失败(permission denied),google了一下,原来 ...
随机推荐
- VUE 异步数据传递给 component props 的问题
案例一 父组件parent.vue // asyncData为异步获取的数据,想传递给子组件使用 <template> <div> 父组件 <child :child-d ...
- MySQL sql join 算发
在MySQL中,可以使用批量密钥访问(BKA)连接算法,该算法使用对连接表的索引访问和连接缓冲区. BKA算法支持:内连接,外连接和半连接操作,包括嵌套外连接. BKA的优点:更加高效的表扫描提高了连 ...
- chrome出现“由贵单位管理”原因及解决方法
谷歌Google在声明里表示: 由贵单位管理指的是由设备或者账户管理员例如企业管理器可以用来强制更改谷歌浏览器配置的企业级策略.例如可以直接通过远程方式向所有受控用户添加书签,当管理员有进行这类操作时 ...
- 编译工具链,生成各个平台的ffmpeg版本的库
1.在开始动手编译ffmpeg之前我们来梳理一下几个概念,gcc.g++.msvc.mingw.clang.cmake.make.qmake 作为一个windows软件工程师,以为长时间浸淫在各种强大 ...
- sql注入笔记-mysql
整理下sql相关知识,查漏补缺(长期更新) 1 常用语句及知识 information_schema包含了大量有用的信息,例如下图 mysql.user下有所有的用户信息,其中authenticati ...
- 创建createElement
let oDiv = { tag:'div', props:{ id:'box' } }: let oP = createElement('p',{'class':'list'},['周一']) ...
- 粘性定位 sticky
position:sticky 粘性定位 top:200px 这是他的阈值,意思是当我们页面滚动到 200 像素的使用,我们的元素会自动变成固定定位,不到200像素的时候,我们的元素走的是相对定位 ...
- Android自定义控件之基本图形绘制
入门示例代码 在Android中Paint类就是画笔,Canvas 就是画布 对于画笔的大小,粗细,颜色,透明度都在paint类中设置,对于画出的成品,比如圆,方形,等在canvas类中的函数生成 入 ...
- Swift 常量
常量一旦设定,在程序运行时就无法改变其值. 常量可以是任何的数据类型如:整型常量,浮点型常量,字符常量或字符串常量.同样也有枚举类型的常量: 常量类似于变量,区别在于常量的值一旦设定就不能改变,而变量 ...
- Oracle查询表和字段
查看表字段.类型.注释 SELECT A.COLUMN_NAME,B.comments,A.DATA_TYPE FROM USER_TAB_COLUMNS A LEFT JOIN user_col_c ...