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

  • 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 需要多个 socketrinetd 可以在 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

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

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

转载于:https://www.cnblogs.com/operationhome/p/11284559.html

Linux-Windows 端口转发相关推荐

  1. linux查看端口转发,端口转发(Linux/Windows)

    [目的] 监听本机 7777 端口,将数据转发到 192.168.7.8 的 8888 端口,实现 TCP 数据转发. [方法] 1.ncat(Linux/Windows 通用)(ncat端口转发)n ...

  2. windows 端口转发

    首先要找到你国内云服务器的内网ip,不是你的公网IP,使用命令ipconfig即可找到. 对于Windows Server 2008以下版本的系统,需要安装IPV6才行,如果是Windows Serv ...

  3. linux查看端口转发配置文件,Linux配置端口转发

    开启IP转发 首先开启IP转发功能,默认是关闭的. 临时修改: # echo 1 >/proc/sys/net/ipv4/ip_forward 修改过后就马上生效,但如果系统重启后则又恢复为默认 ...

  4. windows端口转发

    客户端A  ------>  代理服务器B  -------->  服务器C 服务器B:192.168.10.163,启动代理监听端口7001 服务器C:172.16.14.21,服务端口 ...

  5. Linux 设置端口转发

    ps -ef | grep 10020     --查询10020端口是否被使用 kill -9 86971     --结束使用10020端口的进程 ssh -C -f -N -g -L 18889 ...

  6. Linux iptables 端口转发

    这里 -d 后面姐要转发的地址网络 iptables -I FORWARD -m state -d 192.168.100.0/24 --state NEW,RELATED,ESTABLISHED - ...

  7. linux收到对方端口的数据再转发出去,linux下使用rinetd来实现端口转发

    windows下的端口转发一般用的是自带的nat和porttunnel.portmap linux下端口转发映射的程序叫rinetd,启动方法rinetd -c /etc/rinetd.conf  , ...

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

    在Linux中,使用iptables可以非常轻松地配置端口重定向.在Windows Server系统上,路由和远程访问服务(RRAS)通过使用虚拟专用网络 ( VP N) 或拨号连接支持远程用户或站点 ...

  9. CentOS下用rinetd做端口转发

    windows下的端口转发一般用的是自带的nat和porttunnel.portmap linux下端口转发映射的程序叫rinetd,启动方法rinetd -c /etc/rinetd.conf  , ...

  10. windows ip转发

    命令行执行 : netsh interface portproxy add v4tov4 listenaddress=172.27.179.103 listenport=10030 connectad ...

最新文章

  1. Intellij Idea 使用
  2. 程序员面试金典 - 面试题 01.06. 字符串压缩(字符串)
  3. 怎么在ASP.NET 2.0中使用Membership
  4. mysql进阶-02-事务的引入与基本的使用
  5. java应用uploadify 3.2丢失session
  6. 手机logging什么意思_手机三轴稳定器的“三轴”是什么意思?
  7. scipy —— 丰富的子包(io、cluster)
  8. python 可控制深度遍历文件夹
  9. DCGAN-深度卷积生成对抗网络-转置卷积
  10. oracle lgt,第 2 章 Fortran 95 内函数
  11. 谷歌浏览器如何安装插件-以octotree为例
  12. 西门子s300编程实例_几个西门子plc编程实例图解(含程序应用实例)
  13. python编程出现:expected an indented block错误
  14. 一文掌握智能抠图Deep Image Matting(pytorch实现)
  15. 求职经历,三轮技术面 +HR 面,面试也不过如此
  16. [运算放大器]佛朗哥笔记 - 电阻性反馈电路 - 电流泵与电流放大器
  17. Laravel Excel(maatwebsite/excel )导入
  18. python键盘键值表_Python怎么记录键盘鼠标敲击次数|Python统计鼠标点击次数 - PS下...
  19. redis查看某一个key的大小_redis查询key的内存大小
  20. truct in6_addr has no member named in6_u

热门文章

  1. 解决虚拟机卡 鼠标拖动很慢 有效解决办法
  2. 「leetcode」 1382. 将二叉搜索树变平衡:【构造平衡二叉搜索树】详解
  3. 为 macOS Monterey 优化,有了快捷指令,这些软件效率倍增
  4. 整站数据下载工具:SiteSucker for mac
  5. 在MacOS系统中如何自定义屏幕保护程序?
  6. js设计模式——8.中介者模式
  7. 从“制造”到“智造”,南高齿携手锐捷打造“智能工厂”
  8. 阿里云创客+千人创投会 无人机项目夺冠
  9. stm32cube和sw4stm32开发
  10. JS进阶篇--iscroll.js的使用