赞
踩
本地:mac
内网中的电脑:Linux meng 5.4.0-48-generic #52-Ubuntu SMP Thu Sep 10 10:58:49 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
服务器:腾讯云学生机
要实现的效果:mac能访问到内网中的电脑,即实现内网穿透,希望内网中的frpc服务开机启动,
frp文档链接 https://gofrp.org/docs/examples/stcp/
本地和内网机器都是一个frpc客户端,使用frpc.ini配置文件。通过具有ipv4的服务器进行连接,服务器使用的配置文件就是frps.ini,内网的机器将service加入到开机启动项。
在终端中进行
#在文件的下载目录下解压
tar -xf frp_0.34.1_darwin_amd64.tar.gz
cd frp_0.34.1_darwin_amd64
vim frpc.ini
修改成如下内容
[common] #服务地址 server_addr = xx.xx.xx.xx #服务器frps端口号,主要保证云厂商的端口和主机的此端口号都是打开的 server_port = 15000 [secret_ssh_visitor] #访问类型 type = stcp # stcp 的访问者 role = visitor # 要访问的 stcp 代理的名字,后面内网机器配置文件的[]包裹的字段 server_name = mac #访问凭证/密码 sk = R4QymNG7JPafo # 绑定本地端口用于访问 SSH 服务 bind_addr = 127.0.0.1 bind_port = 15000
启动
vim /Library/LaunchAgents/frpc.plist
写入如下内容
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.meng.frpc.plist</string> <key>ProgramArguments</key> <array> <string>/Users/zhangmeng/Downloads/frp_0.34.1_darwin_amd64/frpc</string> <string>-c</string> <string>/Users/zhangmeng/Downloads/frp_0.34.1_darwin_amd64/frpc.ini</string> </array> <key>KeepAlive</key> <true/> <key>RunAtLoad</key> <true/> <key>StandardErrorPath</key> <string>/Users/zhangmeng/Downloads/frpc.err</string> <key>StandardOutPath</key> <string>/Users/zhangmeng/Downloads/frpc.out</string> </dict> </plist>
这其中的路径都要配成你自己的
解释:这上面编写的是守护进程脚本,mac下的launchctl和linux下的systemctl差不多,我也是第一次在mac上以守护进程的方式启动,具体你可以查一查
启动
#以守护进程的方式启动
launchctl load -w ~/Library/LaunchAgents/frpc.list
#查看是否启动
launchctl list |grep "frpc"
#开机启动(可选)
launchctl enable /Library/LaunchAgents/frpc.plist
至此,在本地电脑上启动了frpc
#可以使用uname -a查看型号
$ uname -a
#Linux VM_0_16_centos 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
我是使用scp命令,把解压后的文件copy到服务器上的
scp 文件 root@x.x.x.x:/tmp
#编辑
vim /tmp/frp_0.34.1_linux_386/frps.ini
替换成如下内容
[common]
#服务器端口号
bind_port = 15000
#web控制面板端口号
dashboard_port = 15004
# dashboard's username and password are both optional,if not set, default is admin.
dashboard_user = username
dashboard_pwd = password
以守护进程的方式启动
#编辑/tmp/frp_0.34.1_linux_386/systemd/frps.service
vim /tmp/frp_0.34.1_linux_386/systemd/frps.service
替换成如下内容
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
#路径如有出入,改成自己的
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
[Install]
WantedBy=multi-user.target
#守护进程方式启动
systemctl start frps.service
#开机启动
systemctl enable frps.service
#查看状态
systemctl status frps
选择自己的系统版本的压缩包
内网机器这边,和服务器端的差不多,但是他的配置文件是frpc.ini,参考内容大概如下
[common]
server_addr = xx.xx.xx.xx
server_port = 15000
#服务名,与mac中的相对应
[mac]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = R4QymNG7JPafo
local_ip = 127.0.0.1
local_port = 22
frps.service参考:
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/meng/Downloads/frp_0.34.1_linux_arm/frpc -c /home/meng/Downloads/frp_0.34.1_linux_arm/frpc.ini
ExecReload=/home/meng/Downloads/frp_0.34.1_linux_arm/frpc reload -c /home/meng/Downloads/frp_0.34.1_linux_arm/frpc.ini
[Install]
WantedBy=multi-user.target
systemctl start frpc.service
systemctl enable frpc.service
systemctl status frps
这里有个插曲,就是我ubuntu的机器的openssh_server没有安装,需要安装才能连接。apt命令安装的时候报错,记得是镜像源连接错误,这时候可以把自己的apt源改一下。
现在就可以在自己的mac上面访问内网机器了
#meng是你的内网机器用户名
ssh -oPort=15000 meng@127.0.0.1
如果感觉每次这么敲麻烦的话
可以再.ssh录下新建一个config文件,写入如下内容
Host lab-laptop 我的ubuntu电脑
HostName 127.0.0.1
Port 15000
User meng
下次连接的时候,就很简单了
ssh lab-laptop
之前的配置文件配了一个dashboard,访问你的配置网址即可查看
这里只是我自己的安装过程,仅供参考
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。