内网穿透 frp

介绍

5年前就开始断断续续使用frp,除了 nat 功能外,在某些网络协议受限的情况下使用它也非常有效。这篇文章稍微记录它的一些操作。

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

github:https://github.com/fatedier/frp

官网:https://gofrp.org/

下载

https://github.com/fatedier/frp/releases/tag/v0.52.3

我的服务端是Linux,下载:frp_0.52.3_linux_amd64.tar.gz

客户端是Mac,下载:frp_0.52.3_darwin_arm64.tar.gz

服务端

使用 systemd管理:

文件/etc/systemd/system/frps.service

[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /var/local/frp/frps -c /var/local/frp/frps.toml

[Install]
WantedBy = multi-user.target

配置文件frps.toml:

bindPort = 7000

命令行设置:

systemctl daemon-reload
systemctl enable frps.service
systemctl restart frps.service

客户端

Mac 下使用 launchd 管理:

文件 ~/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>KeepAlive</key>
  <true/>
  <key>Label</key>
  <string>frpc</string>
  <key>ProgramArguments</key>
  <array>
    <string>/Users/kelu/Workspace/bin/frp_0.52.3_darwin_arm64/frpc</string>
    <string>-c</string>
    <string>/Users/kelu/Workspace/bin/frp_0.52.3_darwin_arm64/tmp.toml</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

命令行设置:

launchctl load ~/Library/LaunchAgents/frpc.plist 
launchctl restart frpc

image-20231211094334367


git 一次性拉取所有分支并缓存到本地

#!/bin/bash

REMOTE_NAME="origin"  

REMOTE_BRANCHES=$(git ls-remote --heads $REMOTE_NAME | awk -F/ '{print $3}')

for branch in $REMOTE_BRANCHES; do
    git checkout -b $branch $REMOTE_NAME/$branch
    git checkout master  
done

echo "批量创建分支完成。"

Xcode 编译项目报错 `Command PhaseScriptExecution failed with a nonzero exit code`

去年的一个项目,报了这个错:

搜索了一番,这么解决:

  1. 删除Podfile.lock文件
  2. 删除Pods文件
  3. 删除.xcworkspace文件
  4. pod install
  5. Command+Shift+K 清理一下缓存

后来请教大佬,xcode升级之后就需要在目录Pods/Target Support Files/xxx里手动加-f也可以:

image-20231128165011740

参考资料