内网穿透
在互联网中,局域网中的机器是没法在外网中访问的。例如家庭网络中的机器在外网中是访问不到的,为了达到能够访问局域网中的机器,就需要内网穿透技术。常见的有花生壳、ngrok、frp,这里我们详细介绍frp。
frp
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。配置简单,方便使用。
frp分server端和client端,在发布的版本中,server端和client端都在同一个release 包中,我们可以根据自己的系统下载不同的release 发布版本。下载地址:``` https://github.com/fatedier/frp/releases ```。一下我们以linux系统为例做介绍,下载完成后解压下载的压缩包,可以看到其中的分别有frpc,frpc.ini,frps,frps.ini文件,其中frpc.ini,frps.ini分别是客户端合服务端的配置文件,frpc、frps分别是客户端和服务端的可执行程序。
使用frp作为内网穿透工具,需要有一台独立ip的机器作为外网服务器,通过服务器穿透到内网部署的服务。外网服务器可以通过阿里云等云服务器购买。在这里可以购买租便宜的,节省成本。本身服务器只是作为一个中间服转发数据,不会消耗太多的性能。我们可以在家里弄一台高配的电脑作为内网服务器,然后申请一台云服务器,通过frp实现内网穿透,变相的提升了云服务器的性能,节省成本。
http 访问
服务端配置
```
[common]
bind_port = 7000
vhost_http_port = 8080
```
启动frp服务器:./frps -c frps.ini
客户端配置
```
[web]
type = http
local_port = 80
custom_domains = test.example.com
```
启动frp客户端,./frpc -c frpc.ini
服务端和客户端启动之后,我们就可以在外网访问内网部署的服务器了
浏览其中输入 test.example.com:8080 之后回车,可以看到正常的显示了内网服务器的内网。
SVN服务器
我们在开发过程中汇总资源代码管理的需求,而svn服务器在内网中,我没也可以使用内网穿透技术实现svn外网的访问。下面先介绍一下svn服务器的搭建,以mac os为例
1、创建仓库
svnadmin /Users/Mac/svn/config
2、修改配置文件
在创建好的仓库config下面可以看到conf目录,此目录中就是仓库的配置文件,下面我们修改配置文件,一遍我们的仓库可以被正确的访问
修改svnserve.conf文件如下
修改passwd文件
这里的用户名和密码都是jiangjiang
接着修改authz文件
3、启动svn服务器
svnserve -d -r /Users/Mac/svn/config
没有报错说明启动成功
4、初始化仓库
svn import /Users/Mac/svn/config/testconfig svn://127.0.0.1:3690/testconfig --username=jiangjing -m "init testconfig"
没有错误说明创建成功
此时我们就可以通过svn co svn://127.0.0.1/testconfig 来访问我们的testconfig仓库了
svn 服务器搭建完毕之后,就可以修改frpc.ini配置文件来支持svn的内网穿透,修改配置文件如下:
[svn]
type = tcp
local_port = 3690
local_ip = 127.0.0.1
remote_port = 3690
custom_domains = svn.example.com
启动客户端
./frpc -c frpc.ini 没有报错,说明启动成功
启动成功之后我们就可以通过命令:svn co svn://svn.example.com/testconfig 在外网访问我们内网的svn仓库了。