惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
爱范儿
爱范儿
量子位
Martin Fowler
Martin Fowler
V
V2EX
博客园 - 三生石上(FineUI控件)
I
InfoQ
MongoDB | Blog
MongoDB | Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
D
DataBreaches.Net
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
U
Unit 42
Apple Machine Learning Research
Apple Machine Learning Research
H
Help Net Security
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
Engineering at Meta
Engineering at Meta

atpX

自建 S3 兼容对象存储服务 Garage 听风的歌 偶尔是深夜就好了 新玩具 AirPods Pro 3 公交车上的时间 从 WHOIS 到 RDAP 通过 WireGuard 访问 NFS 共享文件 自建音乐串流服务探索 我停止了探索 Fediverse 互联网背景噪音 我的数字生活降级 小城与确定性的墙 一只特立独行的猪 Fediverse 与社交 承认的勇气 mediaX - 轻量书影音记录管理工具 我的博客写作流程 网站新增 Misc 页面 擅长对线的鲍勃 在 Chroot 环境下使用 Rsync 同步 再见 JavaScript 当我玩博客时我在玩什么 为什么我的博客没有友链页面 小熊猫与大熊猫 (HDR 照片测试) 是时候为网站开启 HTTP/3 支持了吗 使用 AdGuard Home 搭建自用 DoH 服务 谈谈读书与消遣 2023 年终总结 西安两日游 从 AirPods「升级」到 EarPods
配置 frp 实现内网穿透
ATP · 2020-06-19 · via atpX

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp,udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

配置服务端

下载对应版本的 frp 压缩包,解压到指定目录,解压后 chmod +x frps 授予可执行权限。修改配置文件 frps.ini

[common]
# frp 服务端端口
bind_port = 7000

# frp 服务端密码,配置客户端时用到
token = 12345678

# 认证超时时间,默认为900秒
authentication_timeout = 900

# 网页管理端口
dashboard_port = 7500

# 仪表盘访问的用户名密码
dashboard_user = admin
dashboard_pwd = admin

# 使用 frp 穿透访问内网中的网站,不设置则不会开启这项功能
vhost_http_port = 10080
vhost_https_port = 10443

配置好之后使用 ./frps -c frps.ini 启动服务端

配置客户端

下载对应版本的 frp 压缩包,解压到指定目录,修改配置文件 frpc.ini,完整的配置说明参见中文文档

[common]
# 服务端地址
server_addr = 0.0.0.0
# 服务端端口
server_port = 7000
# 服务端密码
token = 12345678

# 自定义配置名称,格式为“[名称]”
[ssh]
# 连接类型,填 tcp 或 udp
type = tcp
# 本地ip,填你需要转发到的目的ip
local_ip = 127.0.0.1
# 需要转发到的端口
local_port = 3389
# 是否加密客户端与服务端之间的通信,默认是 false
use_encryption = false
# 是否压缩客户端与服务端之间的通信,默认是 false
use_compression = false
# 服务端的远程监听端口
remote_port = 6000

开机启动

服务端

vim /usr/lib/systemd/system/frp.service

添加以下内容:

[Unit]
Description=Frp service
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
Restart=always
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

使用 systemctl daemon-reload 重启加载服务文件后,以下命令控制:

systemctl start frp
systemctl stop frp
systemctl restart frp
systemctl status frp
systemctl enable frp
systemctl disable frp

客户端

方法一:添加到启动目录

新建一个 frpc.bat ,添加以下内容:

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd C:\frp
frpc -c frpc.ini
exit

将该文件放入Windows启动文件夹,

# 系统启动文件夹:
X:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
# 用户启动文件夹:
X:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

这个方法最大缺点是电脑要登录后才能连接

方法二:创建计划任务

计算机管理-系统工具-任务计划程序,在右边面板点击创建任务。

方法三:用 winsw 将 frp 注册为系统服务

下载 winsw,WinSW.NET2.exe 一般运行在 win7、win server2008 的系统中,WinSW.NET4.exe 一般运行在 win10、win server 2012 及以后的系统中,将 WinSW.NET4.exe 改名为 winsw.exe,放到 frp 相同的目录里,在同一个目录里创建一个 utf8 编码的文本文件,文件名是 winsw.xml,内容是:

<service>
    <id>frp</id>
    <name>frpc</name>
    <description>frp remote control</description>
    <executable>frpc</executable>
    <arguments>-c frpc.ini</arguments>
    <onfailure action="restart" delay="60 sec"/>
    <onfailure action="restart" delay="120 sec"/>
    <logmode>reset</logmode>
</service>

以管理员权限打开一个命令窗口,进入到 frp 所在目录,使用以下命令控制:

winsw install
winsw start
winsw stop
winsw uninstall