Linux-Windows 端口转发
2019-08-01 23:46
2036 查看
在实际的生产环境中,我们为了安全性,会将一些重要的服务(数据库服务)不开放外网访问,但是当我们某个时刻由于一些特殊需求,需要进行外网访问的时候,我们可以通过端口转发来实现。通过一台和与服务可以互相访问的主机,通过该主机进行端口转发。
- 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进行端口转发的话我们后面进行补充。
相关文章推荐
- Windows 和 Linux 平台下的端口转发工具
- 端口转发:通过ssh连接家中路由器下的linux,通过mstsc连接家中路由器下的windows(一种teamviewer的替代方案)
- 端口转发(Linux/Windows)
- windows下使用远程工具登录虚拟机上的Linux、访问虚拟机上的服务 、端口转发、win7 telnet登陆虚拟机
- windows和linux下如何查看端口被占用
- Linux系统非ROOT用户80端口不能启动tomcat问题的变通办法——通过Iptables端口转发
- windows 下 TCP 端口转发
- 【转载】Windows完成端口与Linux epoll技术简介
- Windows完成端口与Linux epoll技术简介
- Windows linux 下面查看端口被哪个程序占用
- Linux采用iptables端口转发的配置
- [linux]ssh 端口转发
- Linux 通过端口转发来访问内网服务
- 关于LINUX NAT和端口转发的配置
- windows和linux监听端口数据的方法
- linux下的ssh端口转发
- Windows完成端口与Linux epoll技术简介
- Linux通过端口转发来访问内网服务(端口转发访问阿里云Redis数据库等服务)
- linux下用iptables做本机端口转发方法
- 实现Windows平台的端口转发