1. frp内网穿透配置
准备工作:
- 有公网ip的云服务器(推荐:https://www.xiangcaoyun.com,香港服务器无需备案)
- 本地服务器(需要被远程访问的电脑)
- 本地pc(用于远程访问的电脑)
1.1 云服务器frp配置
推荐项目:https://github.com/stilleshan/frps?tab=readme-ov-file
有两种方式实现云服务器frps部署:docker部署和源码部署 ,推荐docker部署。首先,不管是哪种方式,都需要打开云服务器防火墙端口,假设这里主要用到两个端口:7000和7500 (可以自行配置为其它端口),以香草云服务器为例:
a. 购买服务器后,到控制台查看服务器ip、用户名、密码,然后ssh远程登录服务器:
ssh -p 端口号 用户名@IP
b. 打开防火墙端口:
firewall-cmd --add-port=7000/tcp --permanent # 其它需开发放端口重复此命令 firewall-cmd --reload # firewall-cmd --list-all # 查看已开放端口
- c. 在服务器控制台打开安全组设置,开放7000和7500端口:
1.1.1 docker部署frps
首先确保服务器已安装docker,如果未安装,可采用以下方式安装docker,ssh连接到云服务器后:
curl -fsSL get.docker.com -o get-docker.sh curl -sSL https://get.daocloud.io/docker | sh sudo sh get-docker.sh
a. 在云服务器创建frps配置文件:
mkdir /frp && vim /frp/frps.toml # 如果提示没有vim,先`yum install -y vim`安装vim
b. 配置frps.toml文件内容如下,其它配置参数请参考官网文档:
bindAddr = "0.0.0.0" bindPort = 7000 webServer.addr = "0.0.0.0" webServer.port = 7500 webServer.user = "设置frp面板用户名" webServer.password = "设置frp面板密码" webServer.pprofEnable = false log.to = "./frps.log" log.level = "info" log.maxDays = 3 auth.method = "token" auth.token = "自定义token" # 要求服务端和客户端必须配置一致,不然无法匹配,是二者碰面的暗号
c. 创建容器,过程中会自动拉取使用的镜像,也可使用推荐项目中的Dockerfile自行创建镜像
docker run -d --name=frps --restart=always --network host -v /frp/frps.toml:/frp/frps.toml stilleshan/frps
docker ps -a # 查看容器状态,如果配置错误,容器会一直重启,可以`docker rm [frps]删除容器后重新创建
d. 一切准备就绪后,可浏览器打开frps监控面板验证服务是否成功配置:
- 浏览器打开
服务器IP:7500
,出现登录界面,使用配置文件中设置的面板账户登录即可。
1.1.2 源码部署frps
与docker部署一致,先ssh远程连接到云服务
a. 下载frp源码并解压,此处使用版本是0.56.0:
wget https://github.com/fatedier/frp/releases/download/v0.56.0/frp_0.56.0_linux_amd64.tar.gz tar -zavf frp_0.56.0_linux_amd64.tar.gz
b. 编辑配置文件frps.toml,内容与docker配置中所示一致:
cd frp_0.56.0_linux_amd64 vim frps.toml
c. 开启frps服务:
./frps -c frps.toml # 检查是否有报错,没有报错ctrl+c关闭然后输入下列命令实现后台服务 nohub ./frps -c frps.toml &
- d. 配置完成后同docker部署中一样打开监控面板验证。
1.2 本地frpc部署
本地部署包括被控端和控制端两个部分,配置流程一致,仅配置文件frpc.toml有差别。以被控端配置
xtcp
为例。 使用Dockerfile
自行构建镜像。
a. 首先准备两个文件:Dockerfile、frpc.toml,为了方式-v映射方式下主机文件修改后导致容器一致重启,直接修改镜像中的配置文件,不采用映射方式。弊端就是如果有变更需求,就需要重新做以下流程创建镜像。
# Dockerfile内容配置如下,参考https://github.com/stilleshan/frpc/blob/master/Dockerfile: FROM alpine:latest LABEL maintainer="xxxx" ENV VERSION 0.56.0 ENV TZ=Asia/Shanghai WORKDIR / RUN apk add --no-cache tzdata \ && ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime \ && echo ${TZ} > /etc/timezone RUN if [ "$(uname -m)" = "x86_64" ]; then export PLATFORM=amd64 ; \ elif [ "$(uname -m)" = "aarch64" ]; then export PLATFORM=arm64 ; \ elif [ "$(uname -m)" = "armv7" ]; then export PLATFORM=arm ; \ elif [ "$(uname -m)" = "armv7l" ]; then export PLATFORM=arm ; \ elif [ "$(uname -m)" = "armhf" ]; then export PLATFORM=arm ; fi \ && wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v${VERSION}/frp_${VERSION}_linux_${PLATFORM}.tar.gz \ && tar xzf frp_${VERSION}_linux_${PLATFORM}.tar.gz \ && cd frp_${VERSION}_linux_${PLATFORM} \ && mkdir /frp \ && mv frpc /frp \ && cd .. \ && rm -rf *.tar.gz frp_${VERSION}_linux_${PLATFORM} COPY ./frpc.toml /frp VOLUME /frp CMD /frp/frpc -c /frp/frpc.toml
# frpc.toml serverAddr = "你的云服务器IP" serverPort = 7000 auth.method = "token" auth.token = "前面云服务器中配置的token" [[visitors]] name = "nomachine_visitor" type = "xtcp" serverName = "nomachine" # 注意这里配置为被控端的`serverName` secretKey = "与被控端配置为一致" bindAddr = "127.0.0.1" bindPort = 4001 # 设置端口,使用时nomachine访问本地此端口即可
b. 文件准备好后即可创建镜像,开启服务
[]
自行配置:docker build -t [image-name] . docker run -d --name=[container-name] --restart=always --network host [image-name]
c. 以上即完成了控制端的配置,被控端配置流程一样,只是将frpc.toml文件内容做如下修改:
# frpc.toml serverAddr = "你的云服务器IP" serverPort = 7000 auth.method = "token" auth.token = "前面云服务器中配置的token" [[proxies]] name = "nomachine" type = "xtcp" secretKey = "与控制端配置为一致" localIP = "127.0.0.1" localPort = 4000 # nomachine默认端口为4000
2. nomachine远程桌面
到官网https://www.nomachine.com/](https://www.nomachine.com/)下载对应系统安装包,分别在控制端和被控端安装nomachine。
- a. 控制端打开nomachine,点击添加
- b. 按图中配置相关内容:
- c. 然后点击add即可添加连接,后回到主页连接远程桌面