赞
踩
最近在折腾软路由系统,有局域网外访问的需求,奈何没有公网ip且ipv6兼容性不足,故采用内网穿透方案。经过调查,使用frp作为内网穿透工具,现记录过程如下。
1.云服务器一台,尽量使用国外的云服务器,如azure,amazon等。国内云服务器会封禁80和443端口,必须备案才可以上线网站。
2.域名一个,推荐阿里云,10元左右一年
3.xshell 用于连接云服务器和软路由系统
ps.如果不会使用xshell通过ssh连接服务器,请自行百度!
自行百度
在服务器上使用mkdir frp
新建一个文件夹,然后执行cd frp
进入文件夹内部
使用wget +frp包的地址
下载安装包到云服务器。
frp包链接:https://github.com/fatedier/frp/releases
举个例子:
frp包按照自己的架构下载,如:我使用的x86(amd64)架构的linux云服务器,那么就选择
右键复制链接,https://github.com/fatedier/frp/releases/download/v0.56.0/frp_0.56.0_linux_amd64.tar.gz ,那么我执行的命令就是:
wget https://github.com/fatedier/frp/releases/download/v0.56.0/frp_0.56.0_linux_amd64.tar.gz
最终,执行命令ls
在终端上可以看到下载的包:
运行命令tar xzvf +包名解压
运行命令mv +解压后的文件夹名 +frp
把解压后的文件夹改名(名字太长不好记)
执行命令 cd frp
然后执行 ls
可以看到解压出来的文件:
运行命令 vi frps.toml
即可进入vim文本编辑界面,按i进入编辑模式
自行设置user /password/token并保存下来。
因为ssh连接的特殊性,如果我们在ssh连接时运行了一个程序,当我们断开连接后,程序会自动停止。我们当然不可能一直开着ssh,因此需要使用screen来对程序保活。当然,也可以使用service系统服务等方法,我不会,这里就不细说了。
执行命令:
su
(获取管理员权限,具体请度)
screen -S frp
./frps -c ./frps.toml
当出现下面界面就证明你成功了
客户端请不要下载openwrt商店的版本!我们使用docker运行。
默认已经安装好docker。
在你熟悉的安装目录新建frp目录然后cd frp
进入路径:
下面命令二选一执行:
git clone https://github.com/stilleshan/frpc
# git clone github镜像
git clone https://github.ioiox.com/stilleshan/frpc
# 国内镜像
如果报错没有git包,请按照自己的系统安装git,如openwrt是opkg install git-http
注意:在这一步之前请自行获取https证书并且使用docker cp 转移到docker容器内的frp路径下。
https证书获取,网上有一大堆教程。
执行命令:
vi frpc.toml
配置客户端文件
serverAddr = "frp.freefrp.net" serverPort = 7000 auth.method = "token" auth.token = "你自己的frps的token" [[proxies]] # http配置 name = "web1_xxxxx" type = "http" localIP = "192.168.1.2" localPort = 5000 customDomains = ["nas.yourdomain.com"] # 换成你自己的域名 [[proxies]] # https配置 name = "http_proxy1" type = "https" customDomains = ["nas.yourdomain.com""] [proxies.plugin] type = "https2http" localAddr = "192.168.5.248:5212" crtPath = "/frp/cert.cer" keyPath = "/frp/cert.key" hostHeaderRewrite = "127.0.0.1" requestHeaders.set.x-from-where = "frp" [[proxies]] #其他https节点设置 name = "another_https_proxy" type = "https" customDomains = ["example.com"] # 设置需要代理的自定义域名 [proxies.plugin] type = "tls" # 这里可能需要根据实际情况调整插件类型 remotePort = 443 # 设置远程端口 crtPath = "/path/to/another_cert.cer" # 指定新的证书路径(可以和之前的相同) keyPath = "/path/to/another_cert.key" # 指定新的密钥路径(可以和之前的相同) # 其他节点配置...
执行以下命令启动服务
docker run -d --name=frpc --restart=always -v /root/frpc/frpc.toml:/frp/frpc.toml stilleshan/frpc
注:/root/frpc/frpc.toml换成自己的路径
如果新增了节点,修改了toml文件,我们需要重新启动frpc容器:
vi /root/frp/frpc.toml
# 修改 frpc.toml 配置
docker restart frpc
# 重启 frpc 容器即可生效
frpc docker 配置: https://github.com/stilleshan/frpc
frp官方文档:https://gofrp.org/zh-cn/docs
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。