草庐IT

ENSP 路由器到本地(现实)PC的FTP实验

Spring� 胡 2023-08-03 原文

前言:

在一个风和日丽的下午,我同事突然问我ENSP和本地PC怎么上传和下载文件?我本以为这个很简单,然后我开始了面向百度编程,但是网上的大多数都是ENSP里面的路由器、服务器和PC间的FTP实验,而不是到本地(现实)PC的实验,所以做完该实验后的我选择第一时间来这进行分享!

实验拓扑:

实验一:

路由器充当服务器,本地PC充当客户端。

1.配置Cloud



(第二张ENSP的网卡是本地的虚拟网卡,不会创建的可以面向百度编程)

2.配置路由器IP,实现路由器和本地PC互通。

interface GigabitEthernet0/0/0
 ip address 192.168.153.100 255.255.255.0	//和本地虚拟网卡同网段即可

验证:

路由器ping本地PC:
<R1>ping 192.168.153.1
  PING 192.168.153.1: 56  data bytes, press CTRL_C to break
    Reply from 192.168.153.1: bytes=56 Sequence=1 ttl=128 time=10 ms
    Reply from 192.168.153.1: bytes=56 Sequence=2 ttl=128 time=10 ms
    Reply from 192.168.153.1: bytes=56 Sequence=3 ttl=128 time=10 ms
    Reply from 192.168.153.1: bytes=56 Sequence=4 ttl=128 time=30 ms
    Reply from 192.168.153.1: bytes=56 Sequence=5 ttl=128 time=10 ms
  --- 192.168.153.1 ping statistics ---
    5 packet(s) transmitted
    5 packet(s) received
    0.00% packet loss
    round-trip min/avg/max = 10/14/30 ms
本地PCping路由器:
C:\Users\33790>ping 192.168.153.100
正在 Ping 192.168.153.100 具有 32 字节的数据:
来自 192.168.153.100 的回复: 字节=32 时间=15ms TTL=255
来自 192.168.153.100 的回复: 字节=32 时间=12ms TTL=255
来自 192.168.153.100 的回复: 字节=32 时间=13ms TTL=255
来自 192.168.153.100 的回复: 字节=32 时间=6ms TTL=255
192.168.153.100 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 6ms,最长 = 15ms,平均 = 11ms

3.配置路由器的ftp服务

[R1]ftp server enable			//开启ftp服务
[R1]aaa	//配置aaa认证
 local-user admin password cipher %$%$z@o%/BpB>5NeTuA-Ch((aJ<{%$%$	//账号admin密码admin
 local-user admin privilege level 15	//admin的权限15
 local-user admin service-type ftp	//admin应用于ftp服务
 local-user admin ftp-directory flash:/	//提供ftp服务的目录

4.本地PCftp到路由器


查看路由器的ftp目录

ftp> dir
200 Port command okay.
150 Opening ASCII mode data connection for *.
drwxrwxrwx   1 noone    nogroup         0 Dec 23 09:49 dhcp
-rwxrwxrwx   1 noone    nogroup    121802 May 26  2014 portalpage.zip
-rwxrwxrwx   1 noone    nogroup      2263 Dec 23 09:49 statemach.efs
-rwxrwxrwx   1 noone    nogroup    828482 May 26  2014 sslvpn.zip
drwxrwxrwx   1 noone    nogroup         0 Dec 23 09:49 .
226 Transfer complete.
ftp: 收到 330 字节,用时 0.01秒 33.00千字节/秒。

本地PC上传文件至路由器

ftp> put 1.txt	//上传1.txt的文件
200 Port command okay.
150 Opening ASCII mode data connection for 1.txt.
226 Transfer complete.

ftp> dir	//查看路由器的ftp目录
200 Port command okay.
150 Opening ASCII mode data connection for *.
-rwxrwxrwx   1 noone    nogroup         0 Dec 23 10:15 1.txt	//可以看到该文件已经上传成功
drwxrwxrwx   1 noone    nogroup         0 Dec 23 09:49 dhcp
-rwxrwxrwx   1 noone    nogroup    121802 May 26  2014 portalpage.zip
-rwxrwxrwx   1 noone    nogroup      2263 Dec 23 09:49 statemach.efs
-rwxrwxrwx   1 noone    nogroup    828482 May 26  2014 sslvpn.zip
drwxrwxrwx   1 noone    nogroup         0 Dec 23 10:15 .
226 Transfer complete.
ftp: 收到 392 字节,用时 0.02秒 24.50千字节/秒。

本地PC下载路由器的文件

ftp> get sslvpn.zip	//下载sslvpn.zip的文件
200 Port command okay.
150 Opening ASCII mode data connection for sslvpn.zip.
226 Transfer complete.
ftp: 收到 828482 字节,用时 1.67秒 496.39千字节/秒。

C:\Users\33790>dir	//查看本地PC的目录
2022/10/15 周六  17:27    <DIR>          Saved Games
2022/01/03 周一  19:11    <DIR>          Searches
2021/10/19 周二  23:07    <DIR>          source
2022/12/23 周五  18:16           828,482 sslvpn.zip	//可以看到该文件已经下载成功
2022/03/07 周一  16:01    <DIR>          TEMP
2019/11/14 周四  13:39    <DIR>          UIDowner
2022/01/09 周日  15:52    <DIR>          Videos

实验二:

本地PC充当服务器,路由器充当客户端。

1.配置Cloud

2.配置路由器IP,实现路由器和本地PC互通。

以上两步参考实验一

3.配置3CDaemon的ftp服务器

用其他的ftp软件也可以

4.路由器ftp到本地PC

<R1>ftp 192.168.153.1
Trying 192.168.153.1 ...

Press CTRL+K to abort
Connected to 192.168.153.1.
220 3Com 3CDaemon FTP 服务器版本 2.0    
User(192.168.153.1:(none)):huawei
331 用户名正确, 需要口令       
Enter password:
230 用户已登录 

查看本地PC的ftp目录

[R1-ftp]dir
200 PORT 命令成功          .
150 文件状态正常; 准备启动数据连接                
-rwxrwxrwx 1 owner group         0 Dec 23 18:23 2.txt

路由器下载本地PC的文件

[R1-ftp]get 2.txt	//下载2.txt的文件
200 PORT 命令成功          .
150 文件状态正常; 准备启动数据连接                
226 正在关闭数据连接; 文件传输成功完成.               
FTP: 0 byte(s) received in 0.140 second(s) 0.00byte(s)/sec.

<R1>dir	//查看路由器的目录
Directory of flash:/
  Idx  Attr     Size(Byte)  Date        Time(LMT)  FileName 
    0  -rw-              0  Dec 23 2022 10:15:13   1.txt
    1  drw-              -  Dec 23 2022 09:49:59   dhcp
    2  -rw-        121,802  May 26 2014 09:20:58   portalpage.zip
    3  -rw-          2,263  Dec 23 2022 09:49:54   statemach.efs
    4  -rw-        828,482  May 26 2014 09:20:58   sslvpn.zip
    5  -rw-              0  Dec 23 2022 10:30:17   2.txt	//可以看到该文件已经下载成功

路由器上传文件至本地PC

[R1-ftp]put sslvpn.zip	//上传sslvpn.zip的文件
200 PORT 命令成功          .
150 文件状态正常; 准备启动数据连接                
 1% 3% 5% 7% 9%11%13%15%17%19%21%23%25%27%29%31%33%35%37%39%
41%43%45%47%49%51%53%55%57%59%61%63%65%67%69%71%73%75%77%79%
81%83%85%87%88%90%92%94%96%98%
 100%     
226 正在关闭数据连接; 文件传输成功完成.               
FTP: 828482 byte(s) sent in 1.900 second(s) 436.04Kbyte(s)/sec.

C:\Users\33790>dir	//查看本地PC的目录
2022/10/15 周六  17:27    <DIR>          Saved Games
2022/01/03 周一  19:11    <DIR>          Searches
2021/10/19 周二  23:07    <DIR>          source
2022/12/23 周五  18:33           828,482 sslvpn.zip	//可以看到该文件已经上传成功
2022/03/07 周一  16:01    <DIR>          TEMP
2019/11/14 周四  13:39    <DIR>          UIDowner
2022/01/09 周日  15:52    <DIR>          Videos

结语:

到这里这个实验就结束了,希望能够帮到大家!

有关ENSP 路由器到本地(现实)PC的FTP实验的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  3. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  4. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  5. ruby - rails 3 redirect_to 将参数传递给命名路由 - 2

    我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use

  6. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  7. ruby-on-rails - Rails - 从命名路由中提取 HTTP 动词 - 2

    Rails中有没有一种方法可以提取与路由关联的HTTP动词?例如,给定这样的路线:将“users”匹配到:“users#show”,通过:[:get,:post]我能实现这样的目标吗?users_path.respond_to?(:get)(显然#respond_to不是正确的方法)我最接近的是通过执行以下操作,但它似乎并不令人满意。Rails.application.routes.routes.named_routes["users"].constraints[:request_method]#=>/^GET$/对于上下文,我有一个设置cookie然后执行redirect_to:ba

  8. ruby-on-rails - 如何在 Rails 中设置路由的默认格式? - 2

    路由有如下代码:resources:orders,only:[:create],defaults:{format:'json'}resources:users,only:[:create,:update],defaults:{format:'json'}resources:delivery_types,only:[:index],defaults:{format:'json'}resources:time_corrections,only:[:index],defaults:{format:'json'}是否可以使用1个字符串为所有资源设置默认格式,每行不带“默认值”散列?谢谢。

  9. ruby - 在 Rails 项目中测试本地版本的 gem - 2

    我的Rails站点使用了一个确实不是很好的gem。每次我需要做一些新的事情时,我最终不得不花费与向实际Rails项目添加代码一样多的时间来为gem添加功能。但我不介意,我将我的Gemfile设置为指向我的gem的GitHub分支(我尝试提交PR,但维护者似乎已经下台)。问题是我真的没有找到一种合理的方法来测试我添加到gem的新东西。在railsc中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo。rb,这看起来不对或者b)升级版本,推送到Github,然后运行​​bundleup,这除了耗时之外显然是一场灾难,因为我不确定我所做的promise是否正

  10. ruby - 是否有易于使用的 Ruby FTP 库? - 2

    是否有与FTP服务器交互的高级Ruby库?我可以使用HTTParty、Curb、RestClient或Typhoeus代替Net::HTTP,这使一切变得更容易,但我找不到任何类似的解决方案来替换/增强Net::FTP。更具体地说,我正在寻找:连接到服务器的线路最少。例如,必须使用Net::FTP显式指定登录名能够遍历一个文件夹中的所有条目,或者使用glob,或者只是递归。能够获取所有可能的信息,例如条目类型、大小、mtime,而无需手动解析返回的行。 最佳答案 Ruby的内置OpenURI将处理FTP。来自OpenURI的文档:O

随机推荐