Linux-Windows 端口转发

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

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

1、Windows 端口转发

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

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数据库

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

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

2、Linux 端口转发

一、rinetd

简介

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

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

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

安装:

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

配置文件

配置转发日志

配置文件的转发书写规则,能够配置多个转发。code

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

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

iptablesFirewalld 进行端口转发的话咱们后面进行补充。

相关文章
相关标签/搜索