前言
有的运营商(比如移动)不给公网IP,但我们又需要公网IP(远程访问家里的NAS,远程控制家里的电脑等)怎么办,自己搭建一台内网穿透服务器。
本教程需要一台有公网IP的服务器,租服务器可以看看我这篇文章:便宜的VPS/云服务器推荐
本篇教程讲两种内网穿透工具的搭建和使用
Proxyer(推荐)
Proxyer
目前仅支持TCP
协议、虽然看起来功能比较简单,但基本可以满足日常使用了,特别是在安装和使用方面,对于新手是比较友好的。
这个不需要被端口映射的设备安装客户端,只需要局域网内一台设备安装客户端就可以映射局域网内所有设备的端口。
截图
服务端
Github地址:https://github.com/khvysofq/proxyer
1、安装Docker
#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on
#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
2、安装Docker Compose
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
3、安装Proxyer
wget https://raw.githubusercontent.com/khvysofq/proxyer/master/docker-compose.yml
#请将后面1.1.1.1改成你的服务器ip地址后再运行
export PROXYER_PUBLIC_HOST=1.1.1.1
docker-compose up -d
安装完成后,就可以通过ip:6789
访问服务端WEB
管理面板了,进去后需要设置一个客户端认证密码。
然后CentOS
系统建议关闭防火墙使用,或者打开部分端口也行,关闭命令:
#CentOS 6系统
service iptables stop
chkconfig iptables off
#CentOS 7系统
systemctl stop firewalld
systemctl disable firewalld
像阿里云等服务器,还需要去安全组那里开放下端口。
安装完成之后,就可以使用浏览器访问6789端口(http://{你的公网IP地址或者域名}:6789/
)来使用了。
客户端
进入服务端面板后,界面会提供Linux
、Windows
、macOS
客户端版本,然后自行根据自身系统下载指定版本的压缩包即可。
Windows
可以直接下载界面版本,然后双击可执行文件,会弹出一个网页界面,输入上面的认证密码,即可开始配置穿透。
Linux
下载压缩包后,解压出二进制文件,直接在当前目录使用./proxyer
命令运行即可。
FrpMgr
什么是FRP
FRP 是一个免费开源的用于内网穿透的反向代理应用,它支持 TCP、UDP 协议, 也为 http 和 https 协议提供了额外的支持。你可以粗略理解它是一个中转站,帮你实现 公网 ←→ FRP(服务器) ←→ 家庭内网
的连接,让内网里的设备也可以被公网访问到。
而目前 FRP 还推出了“点对点穿透”的试验性功能,连接成功后可以让公网设备直接跟内网设备“点对点”传输,数据流不再经过 VPS 中转,这样可以不受服务器带宽的限制,传输大文件会更快更稳定。当然,此功能并不能保证在你的网络环境 100% 可用,而且还要求访问端也得运行 FRP 客户端 (因此目前手机是无法实现的,只有电脑可以)。由于实现条件较多,所以有文件传输需求的朋友还是建议买带宽稍大一点的 VPS 会比较省心。
说明:FrpMgr
是一个基于Frp
的快速配置Web
面板,可以一键配置生成客户端的Frp
配置文件,远程安装Frp
服务到任意一台服务器,让我们在使用配置Frp
上方便很多。
截图
安装
Github地址:https://github.com/Zo3i/frpMgr
说明:由于该面板使用的JAVA
、Mysql 5.7
,所以512M
的内存大部分是跑不起来的,如果内存太小,先加一点虚拟内存。
脚本安装
wget -O - https://raw.githubusercontent.com/Zo3i/OCS/master/docker/docker-all2.sh | sh
wget -O - https://raw.githubusercontent.com/Zo3i/frpMgr/master/web/src/main/docker/final/run.sh | sh
#注:代码仅在Centos7,Debian9系统上通过测试
面板访问地址:ip:8999/frp
,账号admin
,密码12345678
,登录成功后在面板修改密码即可。
查看日志命令:1. docker ps 2. docker logs -f --tail 10 java项目的容器ID
手动安装
1、安装Docker
#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on
#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
2、安装Docker Compose
curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
3、安装git
#Debian/Ubuntu系统
apt -y install git
#CentOS系统
yum -y install git
4、安装FrpMgr
#拉取源码
git clone https://github.com/Zo3i/frpMgr.git
#构建Mysql镜像
cd frpMgr/web/src/main/docker/final/mysql
docker build -t jo/mysql .
#构建frp并启动镜像
cd ..
chmod +x w.sh
docker-compose up -d
面板访问地址:ip:8999/frp
,账号admin
,密码12345678
,登录成功后在面板修改密码即可。
查看日志命令:1. docker ps 2. docker logs -f --tail 10 java项目的容器ID
使用
提示:这里安装面板的服务器是没有给你安装Frp的,你可以在下面服务器配置的时候,填上ip,就可以安装frp了。
1、首先去域名服务商解析一个泛域名(如*.zeruns.tech
或*.frp.zeruns.tech
))到服务器ip
。
2、点击左侧FRP
服务器配置,域名只需要填主域名,这里默认的服务器端口为22
。
填好后,点击远程安装,输入服务器密码即可,服务器端系统目前支持CentOS 7
、Debian 8+
、Ubuntu 16+
,且注意防火墙需要打开Web
端口。
3、点击左侧FRP
客户端配置,填上二级域名(比如zeruns
、后面就不要了),本地端口就可以了。
最后点击右侧,下载Win
或者Mac
配置压缩包即可,Win
的话解压出来打开open.bat
即可,连接地址为二级域名:Web端口
。
由于没有Win
客户端开机自启,这里博主就额外说下Windows
开机自启步骤。
1、新建一个vbs后缀的脚本,比如rats.vbs,脚本代码如下:
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "C:\Users\Desktop\frp\frpc.exe -c C:\Users\Desktop\frp\frpc.ini",0
第二行为frp文件夹路径,不直接具体路径的,打开frp文件夹,左上角就是路径,复制即可
2、使用Win+R、输入shell:startup确认运行,将脚本放进弹出来的文件夹里面即可。
部分内容转自:https://www.moerats.com/