当前位置:   article > 正文

mac下使用frp做内网穿透_frp mac

frp mac

我的环境

本地: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加入到开机启动项。

1. 下载frp到本地mac

mac版本的frp
在终端中进行

#在文件的下载目录下解压
tar -xf frp_0.34.1_darwin_amd64.tar.gz

cd frp_0.34.1_darwin_amd64

vim frpc.ini
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

修改成如下内容

[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

启动

vim /Library/LaunchAgents/frpc.plist 
  • 1

写入如下内容

<?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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

这其中的路径都要配成你自己的

解释:这上面编写的是守护进程脚本,mac下的launchctl和linux下的systemctl差不多,我也是第一次在mac上以守护进程的方式启动,具体你可以查一查

启动

#以守护进程的方式启动
launchctl load -w  ~/Library/LaunchAgents/frpc.list
#查看是否启动
launchctl list |grep "frpc"
#开机启动(可选)
launchctl enable /Library/LaunchAgents/frpc.plist
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

至此,在本地电脑上启动了frpc

2.服务器端安装

#可以使用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
  • 1
  • 2
  • 3

linux x86架构
我是使用scp命令,把解压后的文件copy到服务器上的

scp 文件 root@x.x.x.x:/tmp 
#编辑
vim /tmp/frp_0.34.1_linux_386/frps.ini
  • 1
  • 2
  • 3

替换成如下内容

[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

以守护进程的方式启动

#编辑/tmp/frp_0.34.1_linux_386/systemd/frps.service
vim /tmp/frp_0.34.1_linux_386/systemd/frps.service
  • 1
  • 2

替换成如下内容

[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
#守护进程方式启动
systemctl start frps.service
#开机启动
systemctl enable frps.service
#查看状态
systemctl status frps
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.内网机器安装

选择自己的系统版本的压缩包
x86
内网机器这边,和服务器端的差不多,但是他的配置文件是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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
systemctl start frpc.service
systemctl enable frpc.service
systemctl status frps
  • 1
  • 2
  • 3

这里有个插曲,就是我ubuntu的机器的openssh_server没有安装,需要安装才能连接。apt命令安装的时候报错,记得是镜像源连接错误,这时候可以把自己的apt源改一下。

现在就可以在自己的mac上面访问内网机器了

#meng是你的内网机器用户名
ssh -oPort=15000 meng@127.0.0.1
  • 1
  • 2

如果感觉每次这么敲麻烦的话
可以再.ssh录下新建一个config文件,写入如下内容

Host lab-laptop 我的ubuntu电脑
        HostName 127.0.0.1
        Port 15000
        User meng
  • 1
  • 2
  • 3
  • 4

下次连接的时候,就很简单了

ssh lab-laptop
  • 1
4.dashboard

之前的配置文件配了一个dashboard,访问你的配置网址即可查看
dashboard
连接情况

这里只是我自己的安装过程,仅供参考

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/300106
推荐阅读
相关标签
  

闽ICP备14008679号