linux下使用iptables实现内网的ftp端口映射

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

有两台机器,其中一台A 有内网和外网,B机器只有内网。
想达到的目的: 通过A机器的外网去访问B机器的ftp(21)
环境:
A机器外网IP为  123.234.12.22(eth1)  内网IP为 192.168.10.20 (eth0)
B机器内网为 192.168.10.21

实现方法:
1.  让你的linux支持ftp的端口转发
modprobe ip_nat_ftp ###加载ip_nat_ftp模块(若没有编译进内核),以使ftp能被正确NAT
modprobe ip_conntrack_ftp ###加载ip_conntrack_ftp模块
2.  在A机器上打开端口转发功能
vi  /etc/sysctl.conf
使 net.ipv4.ip_forward = 1
sysctl -p

3.  在A机器上创建iptables规则
把外网访问的20和21端口的包转发到内网ftp服务器
iptables -t nat -I PREROUTING -d 123.234.12.22   -p tcp --dport 20,21 -j DNAT --to 192.168.10.21

内网ftp服务器返回包进行源地址转换,这里是 -s 不是-d ,端口号要去掉
iptables -t nat -I POSTROUTING -s 192.168.10.21 -p tcp -j SNAT --to 192.168.10.20


FTP工作模式:

FTP分为主动模式(PORT)和被动模式(PASV)。主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。两者的共同点是都使用21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间随机



本文转自 boy461205160 51CTO博客,原文链接:http://blog.51cto.com/461205160/1727638

相关文章
|
17天前
|
网络协议
iptables配置tcp端口转发
iptables配置tcp端口转发
25 1
|
23天前
|
Linux
linux查看应用对应的端口
linux查看应用对应的端口
15 0
|
23天前
|
网络协议 Linux 网络安全
linux7打开、关闭端口
linux7打开、关闭端口
40 0
|
23天前
|
网络协议 安全 Linux
linux系统安全及应用——端口扫描
linux系统安全及应用——端口扫描
35 0
|
28天前
|
存储 安全 Shell
⭐⭐【Shell 命令集合 文件传输 】Linux ftp工具 使用指南
⭐⭐【Shell 命令集合 文件传输 】Linux ftp工具 使用指南
40 0
|
28天前
|
存储 Shell Linux
【Shell 命令集合 文件传输 FTP客户端工具】Linux ncftp 命令使用指南
【Shell 命令集合 文件传输 FTP客户端工具】Linux ncftp 命令使用指南
35 0
|
7天前
|
Linux Windows
Windows、Mac、Linux解决端口被占用的问题
Windows、Mac、Linux解决端口被占用的问题
8 1
|
10天前
|
网络协议 Linux
Linux如何查询端口被占用?
在Linux环境中,查询端口占用可使用`netstat`、`lsof`和`ss`命令。`netstat -tulnp | grep 80`显示TCP/UDP监听端口,`lsof -i:80`列出使用80端口的进程,而`ss -tuln | grep 80`是`netstat`的现代替代选项。若需解决端口占用问题,先找出占用进程的ID,然后用`kill -9`命令终止它,或调整服务配置以避免冲突。
20 1
|
监控 网络协议 Linux
Linux - 如何查看某个端口是否被占用?
Linux - 如何查看某个端口是否被占用?
297 0
Linux - 如何查看某个端口是否被占用?
|
监控 网络协议 Linux
linux 查看端口占用
本文介绍一下linux查看端口占用基本命令:
linux 查看端口占用