更换了Macbook pro,使用了近5年的Macbook Air终于宣告退役。最近将Air改造成一台私有服务器继续发挥它的价值。
所需要的配置和软件也很简单: 首先是SSH只要在Mac偏好设置>共享>远程管理
中开启即可
由于一般宽带没有公网IP如果需要远程访问有三种方式:
-
联系运营商索要公网IP,也有网友破解光猫设置桥接方式获取到公网IP
-
使用花生壳等内网穿透服务
-
如果你有一台有公网IP的服务器可以使用frp
为了节省时间和自己服务灵活性我选择使用frp做内网穿透
- 从frp release 下载对应系统程序 解压后我们在需要做穿透的mac上编辑配置frpc.ini文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
<span data-line-num="1">[common]</span>
<span data-line-num="2">server_addr = 公网服务器的ip</span>
<span data-line-num="3">server_port = 7000</span>
<span data-line-num="4">admin_addr = 127.0.0.1</span>
<span data-line-num="5">admin_port = 7400</span>
<span data-line-num="6">token = token</span>
<span data-line-num="7">tls_enable = <span>true</span></span>
<span data-line-num="8"></span>
<span data-line-num="9"><span>#下面是我需要开启的服务,按自己需求自定义</span></span>
<span data-line-num="10">[ssh]</span>
<span data-line-num="11"><span>type</span> = tcp</span>
<span data-line-num="12">local_ip = 127.0.0.1</span>
<span data-line-num="13">local_port = 22</span>
<span data-line-num="14">remote_port = 远程访问端口</span>
<span data-line-num="15"></span>
<span data-line-num="16">[mysql]</span>
<span data-line-num="17"><span>type</span> = tcp</span>
<span data-line-num="18">local_port = 3306</span>
<span data-line-num="19">remote_port = 远程访问端口</span>
<span data-line-num="20"></span>
<span data-line-num="21">[postgres]</span>
<span data-line-num="22"><span>type</span> = tcp</span>
<span data-line-num="23">local_port = 5432</span>
<span data-line-num="24">remote_port = 远程访问端口</span>
<span data-line-num="25"></span>
<span data-line-num="26">[mongo]</span>
<span data-line-num="27"><span>type</span> = tcp</span>
<span data-line-num="28">local_port = 27017</span>
<span data-line-num="29">remote_port = 远程访问端口</span>
<span data-line-num="30"></span>
<span data-line-num="31">[jenkins]</span>
<span data-line-num="32"><span>type</span> = tcp</span>
<span data-line-num="33">local_port = 9090</span>
<span data-line-num="34">remote_port = 远程访问端口</span>
<span data-line-num="35"></span>
<span data-line-num="36">[jupyter]</span>
<span data-line-num="37"><span>type</span> = tcp</span>
<span data-line-num="38">local_port = 8888</span>
<span data-line-num="39">remote_port = 远程访问端口</span>
<span data-line-num="40"></span>
<span data-line-num="41">[aria2]</span>
<span data-line-num="42"><span>type</span> = tcp</span>
<span data-line-num="43">local_port = 6800</span>
<span data-line-num="44">remote_port = 远程访问端口 </span>
<span data-line-num="45"></span>
|
这里我在Air上穿透了测试数据库,并将一些服务(jenkins,jupyter)从原有的云服务器中转移到Air上减少资源占用,还开启的aria2下载工具,这样可以随时随地远程下载文件到我的Air中
配置完成后在终端运行
开启服务 ./frpc -c frpc.ini
接下载同样在有公网IP的服务器上下载客户端,编辑frps.ini,配置相对简单
1
2
3
4
|
<span data-line-num="1">[common]</span>
<span data-line-num="2">bind_port = 7000</span>
<span data-line-num="3">allow_ports = 需要穿透的端口,对应frpc的remote_port</span>
<span data-line-num="4">token = 对应frpc的token</span>
|
同样在服务端运行
./frps -c frps.ini
这时就实现了内网穿透,Air已经基本是一台服务器了
这时还需要两个软件让Air变成完全体,就是 supervisor 和 noSleep
在终端和公网服务器停掉之前运行的frpc和frps
Supervisor一个进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能。
Supervisor的安装方式有很对这里不再赘述
安装完成后在配置文件夹下(一般是/supervisor.d/)
touch frp.ini
或 frp.conf
具体使用那个后退需要在/etc/supervisord.conf中最后一行查看也可自行修改配置路径
1
2
|
<span data-line-num="1">[include]</span>
<span data-line-num="2">files = /etc/supervisor.d/*.conf</span>
|
编辑frp.conf
1
2
3
4
5
6
7
|
<span data-line-num="1">[program:frpc]</span>
<span data-line-num="2"><span>command</span>=/Users/***/frp_0.28.2_darwin_amd64/frpc -c /Users/***/frp_0.28.2_darwin_amd64/frpc.ini</span>
<span data-line-num="3">user=you mac username</span>
<span data-line-num="4">autostart=<span>true</span></span>
<span data-line-num="5">autorestart=<span>true</span></span>
<span data-line-num="6">startsecs=30</span>
<span data-line-num="7">startretries=5</span>
|
保存后运行 supervisorctl update
更新配置
supervisorctl status
查看运行状态
这时当你的电脑重启或frp意外停止supervisor都会帮你重新启动frp
在公网服务器同样安装supervisor,添加配置frps.conf
1
2
3
4
5
6
7
|
<span data-line-num="1">[program:frps]</span>
<span data-line-num="2"><span>command</span>=/etc/frp/frps -c /etc/frp/frps.ini</span>
<span data-line-num="3">user=you ubuntu username</span>
<span data-line-num="4">autostart=<span>true</span></span>
<span data-line-num="5">autorestart=<span>true</span></span>
<span data-line-num="6">startsecs=30</span>
<span data-line-num="7">startretries=5</span>
|
执行
supervisorctl update
这时通过
ssh 公网user@公网IP -p 6000
就可以访问你的内网Air了,如果你还穿透了其他服务如jenkins remote_port = 19090,使用
公网ip:19090
就可以访问到Air中运行的jenkins服务
在实际使用过程中发现就算偏好设置>节能设置
为永不休眠,盒盖也会发生断网情况,所以下载noSleep并运行可以保持Air待机状态,这样就算合盖可以顺畅访问Air了。
Air这时就是一台带有公网IP的服务器了,想做什么就可以自由发挥了。