当前位置:首页 » 文件传输 » 自己写ftp如何控制数据端口
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

自己写ftp如何控制数据端口

发布时间: 2023-08-03 19:39:13

‘壹’ C++编写ftp服务器时,Ftp服务器与客服端建立连接之后,怎么协商数据传输端口(程序实现)

当用accept函数与客户端请求建立连接之后,accept函数将自动新建一个套接字(假设为s2),这个新建的套接字和客户端相连接并收发数据,而原来在监听状态的套接字(假设为s1)仍然处于监听状态,以便接受下一个连接请求。在accept函数返回s2之前,bind、listen、accept都是针对s1进行的。而accept函数返回s2之后的send和recv都是针对s2.

至于代码,想深究的话,建议去看看"tcp/ip详解"第二卷

‘贰’ 如何禁止FTP,如何封堵FTP,FTP通讯协议和端口范围

添加防火墙入站规则,
windows上禁止20、21两个端口就可以了。
linux上,还有22端口是给ssh工具用的,如果也想阻止,就一起禁止掉。

‘叁’ 如何修改 ftp 端口

怎样修改SSH和FTP的登录端口

LINUX 的默认SSH 端口是 22。为了防止别人暴力破解(这年头无聊的菜鸟黑客太多),建议修改SSH 访问端口:
第一步:
[[email protected] ~]#vim /etc/ssh/sshd_config
找到#Port 22一段,这里是标识默认使用22端口,修改为如下:
Port 22
Port 3456

注意:先不要删除Port 22,以免发生意外无法登录。

保存退出,然后执行/etc/init.d/sshd restart(或/etc/init.d/ssh restart,或service sshd restart),重启SSH服务,这样SSH端口将同时工作与22和3456上。测试成功后再关闭22端口。
如果没有启用防火墙或者防火墙没有屏蔽端口,就可以直接测试新端口是否可用了。

如果打开了iptables,则执行第二步:

编辑防火墙配置:vi /etc/sysconfig/iptables 开放 3456端口

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3456 -j ACCEPT

然后执行/etc/init.d/iptables restart

第三步:
使用ssh工具连接3456端口,来测试是否成功。
如果连接成功了,则再次编辑sshd_config的设置,将里边的Port 22 删除即可。

最后,别忘了重启SSH服务哦。

修改FTP端口相对要复杂一些,主要是因为FTP软件太多,启动方式也不一样。

第一种情况:vsftpd

步骤:1.修改/etc/services文件

# vi /etc/services

将21/tcp修改为20129/tcp (20129是你自己想要的端口号,可以随便修改,不过必须注意:端口号最大为65535。)

2.修改(新增)FTP配置文件vsftpd.conf

# vi /etc/vsftpd/vsftpd.conf

如果文件中有Listen_port=21,则将21修改为2021,

否则添加一行Listen_port=2021

3.启动TFP服务

# service vsftpd restart

4.检查TFP服务

# service vsftpd status

第二种情况:FTP集成在Kloxo之中。Kloxo是一整套的服务器模块,其中一个是FTP。您不能改变对Kloxo管理控制面板的服务器配置。默认情况下Kloxo使用pureftp作为FTP服务器,xinetd的作为协助进程启动FTP服务。

步骤:1,登录使用root的SSH访问。
您的pureftp配置是在/etc/xinetd.d/pureftp,这个文件的第一行就是ftp的服务,一般不需修改。

2,打开/etc/services 编辑,找到这些行:
ftp 21/tcp
ftp 21/udp fsp fspd
将其修改成这样:
ftp 20129/tcp
ftp 20129/udp fsp fspd
保存文件并退出。

3,重新启动xinetd:
service xinetd restart

检查所有的监听端口:
netstat -an | grep LISTEN

如果已没有侦听端口21,而是发现端口20129
tcp 0 0 0.0.0.0:20129 0.0.0.0:* LISTEN
则应该就算成功了。当然,你应该马上通过您的FTP客户端来测试一下,不要忘记使用新端口哦!

第三种情况:LNMP集成pureftp

这种情况应该修改 /usr/local/pureftpd/pure-ftpd.conf

找到其中的

#Bind 127.0.0.1,21
修改为:
Bind 127.0.0.1,20129

有的时候这样也不行,那就将127.0.0.1删掉,改为

Bind ,20129

然后重启ftp服务 /etc/init.d/pureftpd restart

‘肆’ ftp的三种端口模式都是哪些如何工作的

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

1. PORT(主动)方式的连接过程是:
客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

2. PASV(被动)方式的连接过程是:
客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

概括:
--------------------------------------------------------------------------------
主动模式:服务器向客户端敲门,然后客户端开门
被动模式:客户端向服务器敲门,然后服务器开门
所以,如果你是如果通过代理上网的话,就不能用主动模式,因为服务器敲的是上网代理服务器的门,而不是敲客户端的门
而且有时候,客户端也不是轻易就开门的,因为有防火墙阻挡,除非客户端开放大于1024的高端端口

--------------------------------------------------------------------------------
3.单端口模式
除上述两种模式之外,还有一种单端口模式。该模式的数据连接请求由FTP服务器发起。使用该传输模式时,客户端的控制连接端口和数据连接端口一致。因为这种模式无法在短时间连续输入数据、传输命令,因此并不常用。

‘伍’ 如何指定ftp客户端的端口

进入“控制面板”->“程序”->"打开或关闭Windows功能",找到“Internet信息服务”选项。
将“Internet信息服务”选项勾选,确定,计算机开始开启服务,需要等待一段时间。这时打开了“FTP服务器”,“Web管理工具”中的“IIS管理控制台”和“万维网服务”下的全部服务(该服务可能需要重启计算机才能生效)。
右击“计算机”,点击“管理”。

点击“服务和应用程序”->“Internet信息服务(IIS)管理器”,右击“网站”,点击“添加FTP站点”。

添加站点名称和选择Ftp站点根目录物理路径。
IP地址选择本机IP,端口可以自行设定(为了安全最好不要使用默认端口21);SSL选择“允许”,然后下一步。
身份验证选择“基本”,授权选择“所有用户”(即这台计算机现存的所有有效账户都可登录),权限设置“读取”(即只可以从ftp下载文件,不可以上传文件,想要设置上传权限需要选择“写入”),点击“完成”。
在管理控制台在网站下可以看到新产生的Ftp站点,点击网站可以看到站点相关信息,想要登录ftp可能需要重启计算机。
打开Windows资源管理器或者浏览器输入“ftp://IP:Port”,弹出登录对话框。
输入有效地用户账号和密码,进行登录,在Ftp根目录:E:\Ftp\Download 下有一个 测试.txt 文本文件,可以看到成功登录Ftp之后显示该文件。可以通过复制然后将文件粘贴到本地计算机进行文件下载。
添加专门进行FTP操作的用户组和用户。
在管理控制台,点击“用户”,右击空白区域点击“新用户”,创建新用户。
输入用户名和密码,取消“用户下次登录时须更改密码”,选择“用户不能更改密码”和“密码永不过期”,点击创建,新建用户名为Download的用户。
新建的用户都默认属于 Users 组,可以通过该用户和密码登录计算机,因此为不使该用户具有登录计算机等普通用户的权限,从 Users组中删除 Download成员。
然后右击右侧空白区域,点击“新建组”,输入组名称和描述信息,然后点击“添加”,添加成员。
进入选择用户对话框,点击“高级”,在新弹出对话框中选择“立即查找”,从搜索结果中找到Download,点击确定,再确定。
然后在成员栏中出现Download,点击“创建”,成功创建用户组并将Download用户添加至用户组 “Ftp Users”。
只允许特定用户访问FTP。
点击网站下Ftp站点,双击“授权规则”此时FTP允许所有用户登录。
双击“所有用户”,选择“指定的角色或用户组”,输入成员Download,确定,则目前只有Download可以登录FTP。
重启FTP,可能还需要重启计算机使得配置生效,现在只有用户名Download可以登录FTP,并且该用户名无法登录计算机或进行其他操作。可以通过测试设置查看连接测试结果。

‘陆’ linux ftp端口怎么设置

1、先查看下有没安装FTP软件rpm -qa vsftpd。

注意事项:

FTP 的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。它能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。