培训第十天(frp内网穿透与ftp文件传输)

avatar
作者
筋斗云
阅读量:0

上午

frp与ftp

rsyncd服务端口号873

1、frp介绍

在 Linux 中,FRP 通常指的是一款用于内网穿透的工具。

FRP 可以帮助您在具有公网 IP 的服务器和处于内网环境的机器之间建立安全可靠的连接,实现内网服务的外网访问。

比如说,如果您在家中有一台电脑运行着一个 Web 服务,但您的家庭网络没有公网 IP,通过在具有公网 IP 的服务器上部署 FRP 服务端,在内网电脑上部署 FRP 客户端并进行相应配置,您就可以从外网访问到家中电脑上的 Web 服务。

FRP 的配置相对灵活,支持多种协议的穿透,如 TCP、UDP 等。您可以根据不同的服务类型和需求进行配置。

例如,如果您想远程访问家中的 SSH 服务,就可以通过配置 FRP 来实现。

它还提供了一些高级功能,如负载均衡、加密传输等,以满足更复杂的需求和保障数据安全。

在实际使用中,您需要在服务器端和客户端分别进行配置文件的修改,包括服务器的地址、端口、映射的本地端口等信息。

总的来说,FRP 为解决内网服务外网访问的问题提供了一种有效的解决方案。

2、frp客户端安装使用

(服务端老师已做好直接访问即可)

百度网盘下载

百度云盘 | 百度网盘 请输入提取码

密码:i8vm

将其拖拽到mv虚拟机中并解压

 [root@1 ~]# mv frp_0.33.0_linux_amd64.tar.gz frp.tar.gz  [root@1 ~]# tar -zxvf ftp.tar.gz   [root@1 ~]# mv frp_0.33.0_linux_amd64/ frp/  [root@1 ~]# tree frp  frp  ├── frpc  ├── frpc_full.ini  ├── frpc.ini         //c表示客户端  ├── frps  ├── frps_full.ini  ├── frps.ini         //s表示服务端 .ini表示初始文件(配置文件)  ├── LICENSE  └── systemd      ├── frpc.service      ├── frpc@.service      ├── frps.service      └── frps@.service  1 directory, 11 files  [root@1 ~]# cd frp/  [root@1 frp]# vim frpc.ini   [common]  server_addr = 123.249.27.70    //公网ip地址  server_port = 7000  token=knee@588588         //口令  [lijiaqi]                 //不能与其他人冲突  type = tcp                  local_ip = 127.0.0.1  local_port = 22  remote_port = 6064       //选择一个服务器开放的端口号  [root@1 frp]# ./frpc -c frpc.ini    //启动

在浏览器中输入用户名与密码可以登录服务器

登录成功(可以查看连接主机数量,可以访问其他人)

查看端口号

输入公网ip与他人对应的端口号

输入对方用户名与密码后就可以连接到对方主机了

3、frp服务端安装使用

主机1 内网主机 不可以被网络访问

主机2 外网主机 可以被外网通过ip或者域名访问

使用2代理1主机,通过访问2主机管理1主机

ssh访问2主机的特定端口,管理1主机的22端口

 服务端配置  [root@2 ~]# scp -r -P9999 root@10.0.0.11:/root/frp.tar.gz   /root/  [root@2 ~]# tar -zxvf frp.tar.gz   [root@2 ~]# mv frp_0.33.0_linux_amd64/  frp  [root@2 ~]# cd frp  [root@2 frp]# vim frps.ini    //配置面板,添加3行  dashboard_user=aaa  dashboard_pwd=aaa  dashboard_port=7500  [root@2 frp]# firewall-cmd --zone=public --add-port=7000 --permanent  FirewallD is not running     //需要开启防火墙服务  [root@2 frp]# systemctl start firewalld  [root@2 frp]# firewall-cmd --zone=public --add-port=7000/tcp --permanent    //打开7000端口(frp端口)  success  [root@2 frp]# firewall-cmd --zone=public --add-port=7500/tcp --permanent     //7500端口(面板端口)  success  [root@2 frp]# firewall-cmd --zone=public --add-port=6000-6100/tcp --permanent   //6000-6100端口(客户端的代理端口)  success  [root@2 frp]# firewall-cmd --reload   //重新加载防火墙配置  success  [root@2 frp]# ./frps -c frps.ini   //启动服务

浏览器访问服务端控制面板(输入aaa用户名与aaa用户密码)

 客户端  [root@1 ~]# cd frp/  [root@1 frp]# vim frpc.ini   [common]  server_addr = 10.0.0.20  server_port = 7000  [lijiaqi]  type = tcp  local_ip = 127.0.0.1  local_port = 22  remote_port = 6064  [root@1 frp]# ./frpc -c frpc.ini    //启动服务

浏览器刷新(已连接一台主机)

总结:

frp反向代理,github上的开源软件,底层是vpn私有局域网

使用加速器在github,uu加速器(收费),steam++免费开源。

客户端:frpc frpc.ini frcp.full.ini

服务器: frps frps.ini fps.full.ini

分别部署到服务器和客户端(软件包)

 1、配置服务器:  [服务器名称]  bind_port=7000 #必须的  #配置面板 也叫控制台  dashboard_user=xxxx  dashboard_pwd=xxxx  dashboard_port=6100  #标识  token=xxxx  ​  访问之前开启端口  firewall-cmd --zone=public  --add-port=7000,7500,6000-6100/tcp --permanent  启动  ~/frp/frps -c frps.ini  2、配置客户端:  [服务器的名称]  server_addr=x.x.x.x  server_port=7000  token=xxxx  [自定义被代理的名称]  local_ip=被代理的主机的ip  local_port=被代理的端口 22 80 443 8080  remote_port=6089  启动  ~/frp/frpc -c frpc.ini  浏览器访问  x.x.x.x:7500

frp不止可以在linux和mac安装,也可以在window安装frp

下午

1、ftp介绍

一个文件在同一时间内,无论有多少人在r,但是只能有一个w。

FTP 即文件传输协议(File Transfer Protocol),是用于在网络上进行文件传输的一套标准协议。

FTP 的主要作用是在客户端和服务器之间实现文件的上传、下载、删除、重命名等操作。它允许用户通过互联网连接到远程服务器,并访问和管理存储在服务器上的文件。

以下是 FTP 的一些特点和优势:

  1. 高效性:能够快速传输大量文件。 例如,在企业中,大量的文档、数据文件可以通过 FTP 进行高效的传输和共享。

  2. 稳定性:在网络连接不稳定的情况下,FTP 通常能够恢复中断的传输。

  3. 广泛支持:被众多操作系统和软件所支持。

然而,FTP 也存在一些局限性:

  1. 安全性相对较低:传输的数据通常是明文形式,容易被窃取。

  2. 配置和管理相对复杂。

在实际应用中,FTP 常用于网站文件的更新、软件的分发、数据的备份等场景。

2、ftp服务端基础配置

 服务器配置  [root@1 ~]# rpm -qa | grep ftp    //查看是否安装了ftp服务  vsftpd-3.0.2-22.el7.x86_64  [root@1 ~]# yum -y install vsftpd  //如果没有安装,此命令安装  [root@1 ~]# rpm -ql vsftpd    //查看安装的文件列表  /etc/vsftpd/vsftpd.conf  [root@1 ~]# systemctl status vsftpd   //查看服务状态  ● vsftpd.service - Vsftpd ftp daemon     Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)     Active: inactive (dead)  [root@1 ~]# systemctl start vsftpd   //开启服务  [root@1 ~]# netstat -lupnt | grep ftp   //查看服务端口  tcp6       0      0 :::21                   :::*                    LISTEN      1375/vsftpd    [root@1 ~]# systemctl start firewalld  //如果防火墙没开,此命令开启防火墙  [root@1 ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent      //开启21端口  success  [root@1 ~]# firewall-cmd --reload   success  [root@1 ~]# firewall-cmd --zone=public --list-ports  21/tcp  [root@1 ~]# setenforce 0   //设置selinux为宽松模式  [root@1 ~]# vim /etc/selinux/config   //永久设置selinux  SELINUX=permissive

3、ftp客户端安装使用ftp服务

 客户机配置  [root@2 ~]# yum -y install ftp lftp  [root@2 ~]# lftp 10.0.0.11    //有延迟,不好用  lftp 10.0.0.11:~> ls  中断                                       lftp 10.0.0.11:/> quit    //退出  [root@2 ~]# ftp 10.0.0.11  Connected to 10.0.0.11 (10.0.0.11).  220 (vsFTPd 3.0.2)  Name (10.0.0.11:root): ftp    //随便输入一个用户  331 Please specify the password.  Password:        //不输入密码,直接回车  230 Login successful.    //允许匿名登陆  Remote system type is UNIX.  Using binary mode to transfer files.  ftp> ls    //无权限,查看不了  227 Entering Passive Mode (10,0,0,11,90,18).  ftp: connect: 没有到主机的路由  ftp> quit    //退出  221 Goodbye.

4、ftp配置文件修改

 修改配置文件  ​  规定用户访问  [root@1 ~]# vim /etc/vsftpd/vsftpd.conf    //查看vsftpd的配置文件  [root@1 ~]# useradd kehu   //创建ftp登录的账户  [root@1 ~]# echo kehu| passwd --stdin kehu  更改用户 kehu 的密码 。  passwd:所有的身份验证令牌已经成功更新。  [root@1 ~]# vim /etc/vsftpd/vsftpd.conf    //修改配置文件  anonymous_enable=NO       //不允许匿名访问  [root@1 ~]# systemctl restart vsftpd   //重启服务  ​  测试用户登录  [root@2 ~]# ftp 10.0.0.11  Connected to 10.0.0.11 (10.0.0.11).  220 (vsFTPd 3.0.2)  Name (10.0.0.11:root): kehu    //必须指定用户  331 Please specify the password.  Password:  230 Login successful.  Remote system type is UNIX.  Using binary mode to transfer files.  ​  规定用户存放文件的路径并进行限定目录  [root@1 ~]# vim /etc/vsftpd/vsftpd.conf     local_root=/data/kehu       //指定用户存放文件的路径  [root@1 ~]# mkdir -p /data/kehu/  [root@1 ~]# vim /etc/vsftpd/vsftpd.conf    chroot_local_user=YES       //限定目录  [root@1 ~]# systemctl restart vsftpd  [root@1 kehu]# dd if=/dev/zero of=bigfile0 bs=3M count=1  记录了1+0 的读入  记录了1+0 的写出  3145728字节(3.1 MB)已复制,0.0039028 秒,806 MB/秒  [root@1 ~]# systemctl stop firewalld  [root@1 ~]# setfacl -R -m u:kehu:rwx /data/kehu/  [root@1 ~]# vim /etc/vsftpd/vsftpd.conf  chroot_local_user=YES     //禁锢所有⽤户   chroot_list_enable=YES    //开启⽤户列表⽂件  chroot_list_file=/etc/vsftpd/chroot_list    //指定⽤户列表⽂件  [root@1 ~]# echo kehu >> /etc/vsftpd/chroot_list        //代表客服这个账号不会被禁锢在指定⽬录
 [root@1 ~]# setfacl -R -m u:kehu:rwx /data/kehu/

这是一条在 Linux 系统中用于设置文件访问控制列表(ACL)的命令。 setfacl 是用于操作文件或目录的 ACL 规则的命令。 -R 选项表示递归地应用 ACL 规则到指定目录及其包含的所有文件和子目录。 -m 选项用于修改现有的 ACL 规则。 u:kehu:rwx 表示为用户 kehu 设置读、写、执行的权限(r 表示读权限,w 表示写权限,x 表示执行权限)。 /data/kehu/ 是要应用 ACL 规则的目录路径。 例如,如果您有一个名为 /data/kehu 的目录,其中包含多个文件和子目录,执行上述命令后,用户 kehu 将对该目录及其所有内容具有完整的读、写和执行权限。这在需要为特定用户授予更精细的权限控制时非常有用,而不仅仅是依赖于传统的文件所有者、所属组和其他用户的权限设置。

 [root@2 tmp]# dd if=/dev/zero of=/tmp/file0 bs=10M count=1  记录了1+0 的读入  记录了1+0 的写出  10485760字节(10 MB)已复制,0.0253196 秒,414 MB/秒  [root@2 tmp]# cd /tmp/  [root@2 tmp]# ftp 10.0.0.11  Connected to 10.0.0.11 (10.0.0.11).  220 (vsFTPd 3.0.2)  Name (10.0.0.11:root): kehu  331 Please specify the password.  Password:  230 Login successful.  Remote system type is UNIX.  Using binary mode to transfer files.  ftp> put file0     //上传本地文件到服务器中,该文件会上传到服务器中专属kehu的目录下(/data/kehu/)  local: file0 remote: file0  227 Entering Passive Mode (10,0,0,11,205,104).  150 Ok to send data.  226 Transfer complete.  10485760 bytes sent in 0.0846 secs (123910.00 Kbytes/sec)  ftp> get bigfile0   //下载服务器上的文件到本地,该文件会下载到当前所在目录(下载的文件也必须存在于/data/kehu中)  local: bigfile0 remote: bigfile0  227 Entering Passive Mode (10,0,0,11,138,177).  150 Opening BINARY mode data connection for bigfile0 (3145728 bytes).  226 Transfer complete.  3145728 bytes received in 0.0198 secs (158891.20 Kbytes/sec)

注意:一定是要在文件所在目录才可以进行上传

(ftp可以允许多人同时使用一个账户进行操作)

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!