[转帖]Linux-Windows 端口转发 netsh 还有 rinetd

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 进行端口转发的话我们后面进行补充。

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/11429343.html

时间: 2024-12-16 07:44:05

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

windows端口转发

#windows端口转发 CMD #例如172.16.11.23:1522 转发到 192.168.18.15:22 netsh interface portproxy add v4tov4 listenaddress=172.16.11.23 listenport=1522 connectaddress=192.168.18.15 connectport=22 #删除转发 netsh interface portproxy delete v4tov4 listenaddress=172.16.

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

# 安装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 说明:IP的端口是双字节,也就是256*256-1, 256*256对计算机来说就是0,因

Linux SSH端口转发

SSH端口转发分为两种,一种是本地端口转发,又称为本地SSH隧道.一直是远程端口转发.SSH端口转发,还必须指定数据传送的目标主机,从而形成点对点的端口转发. 本地端口转发 假定有三台主机A.B.C.由于种种原因(无论是防火墙还是路由原因),AC两台主机之间无法连通.但是B却可以和A.C连通.这时候就可以用本地端口转发来实现A和C通过B来连通. A  192.168.7.27 B  192.168.6.19 C  192.168.30.68 6网段和7网段.30网段都相通,但是7网段和30网段不

linux配置端口转发

一.使用rinted进行端口转发 将10.50.13.13 80请求转到10.50.13.11 80上 1.安装rinetd $ tar zxf rinetd.tar.gz $ cd rinetd $ make $ make install 2.编辑配置文件 $ vi /etc/rinetd.conf 添加如下内容 $ 0.0.0.0 80 10.50.13.11 80 #本机IP为10.50.13.13 3.启动rinetd服务 $ rinetd -c /etc/rinetd.conf 二.使

Linux iptables 端口转发

准备: 1, UDP端口范围映射 2, tcp 端口范围映射 3, 本机端口转发 4, 单个端口转发 准备: 打开转发 [[email protected] ~]# cat /etc/sysctl.conf  | grep net.ipv4.ip_forward net.ipv4.ip_forward = 1 清空规则,修改默认策略,重要数据请备份 [[email protected] ~]# iptables -F -t nat [[email protected] ~]# iptables 

linux 系统端口转发

将外部请求的 80 端口转发到 8080 端口 sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 将内部使用localhost(127.0.0.1)请求的 80 端口转发到 8080 端口 sudo iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080

在Windows中使用netsh命令进行端口转发

在Windows中使用netsh命令进行端口转发 参数 listenaddress – 等待连接的本地IP地址 listenport – 本地侦听TCP端口 connectaddress – 将传入连接重定向到本地或远程IP地址(或DNS名称) 创建端口转发 netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=29999 connectaddress=192.168.64.200 connectport=

Linux版VMware使用DHCP为虚拟机分配固定IP及实现NAT网络端口转发

首先介绍一下环境: 1. Host(宿主计算机)的操作系统是Scientific Linux,内核版本2.6.18,主机名SPVM02,IP地址135.100.101.102,部署的是VMware Workstation 8. 2. Guest(虚拟机)这边安装的操作系统是Windows 7. 3. Guest使用vmnet8这块网卡,通过NAT协议实现上网. 需要实现的功能是Host网络中的其他计算机使用Microsoft Remote Desktop远程登录Guest桌面.所以探索如何通过配

Windows配置端口转发

1.用windows的netsh实现优点:(1)部署简单.Windows自带,支持IPv4和IPv6(2)不用重启机器,还长记性.命令即时生效,重启系统后配置仍然存在.缺点:(1)不支持UDP(2)XP/2003需要先安裝IPV6,Win7以上系统自带. 执行命令: (1)安装环境支持(如果已经安装IPV6,可以不执行)netsh interface ipv6 install (2)查看已配置的"端口映射"清单netsh interface portproxy show v4tov4