Linux-Windows 端口转发

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

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

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:WINDOWSsystem32> 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 </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/operationhome/p/11284559.html

相关文章
|
1天前
|
安全 Linux Shell
|
6天前
|
NoSQL Linux Redis
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
21 0
|
8天前
|
安全 Linux 网络安全
|
9天前
|
iOS开发 MacOS Windows
|
14天前
|
前端开发 Linux iOS开发
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
【4月更文挑战第30天】Flutter扩展至桌面应用开发,允许开发者用同一代码库构建Windows、macOS和Linux应用,提高效率并保持平台一致性。创建桌面应用需指定目标平台,如`flutter create -t windows my_desktop_app`。开发中注意UI适配、性能优化、系统交互及测试部署。UI适配利用布局组件和`MediaQuery`,性能优化借助`PerformanceLogging`、`Isolate`和`compute`。
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
|
15天前
|
弹性计算 Shell Linux
|
15天前
|
Linux Python Windows
Python虚拟环境virtualenv安装保姆级教程(Windows和linux)
Python虚拟环境virtualenv安装保姆级教程(Windows和linux)
|
16天前
|
安全 Linux 网络安全
【专栏】在 Linux 中,端口连接服务和应用,过多开放的端口可能带来安全隐患,教你一招找出所有开放的端口,然后直接干掉!
【4月更文挑战第28天】在 Linux 中,端口连接服务和应用,过多开放的端口可能带来安全隐患。要找出开放端口,可使用 `netstat -anp`、`lsof -i` 或 `nmap` 命令。关闭端口可通过停止相关服务、修改防火墙规则或禁用网络接口。注意不要随意关闭重要端口,操作前备份数据。保持端口安全对系统安全至关重要。
|
20天前
|
Linux 网络安全
【Linux】如何修改为固定ip和增加端口
【Linux】如何修改为固定ip和增加端口
8 1