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 //启动
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 //启动服务
ails/140556030
总结:
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 的一些特点和优势:
高效性:能够快速传输大量文件。 例如,在企业中,大量的文档、数据文件可以通过 FTP 进行高效的传输和共享。
稳定性:在网络连接不稳定的情况下,FTP 通常能够恢复中断的传输。
广泛支持:被众多操作系统和软件所支持。
然而,FTP 也存在一些局限性:
安全性相对较低:传输的数据通常是明文形式,容易被窃取。
配置和管理相对复杂。
在实际应用中,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可以允许多人同时使用一个账户进行操作)