发新话题
打印

[开发] 利用frp内网穿透实现本地开发线上调试

利用frp内网穿透实现本地开发线上调试

首先在公网服务器A上运行一个公共服务端,并设置*.ktsee.com泛域名解析到该服务器

FRP服务端配置frps.ini:
代码:
[common]
bind_port = 7000
bind_udp_port = 7001
vhost_http_port = 7000
vhost_https_port = 7000
subdomain_host = ktsee.com
token = mytoken
max_pool_count = 2
接着在需要内网穿透的电脑上运行客户端,连上前面的服务端或者其他任意服务端

FRP客户端配置frpc.ini:
代码:
[common]
server_addr = 服务器A的地址,或者其他任意公共服务器地址
server_port = 7000
token = mytoken

[web]
type = http
local_port = 80
use_encryption = false
use_compression = false
subdomain = 3sv

# plugin = https2http
# plugin_local_addr = 127.0.0.1:80
# plugin_crt_path = ./3sv.ktsee.com.crt
# plugin_key_path = ./3sv.ktsee.com.key
# plugin_host_header_rewrite = 127.0.0.1
# plugin_header_X-From-Where = frp
完成后访问http://3sv.ktsee.com:7000或者https://3sv.ktsee.com:7000即可(设置https需要注释https2http插件部分配置)

TOP

使用以下脚本可以在windows下显式运行frpc客户端
代码:
@echo off
REM start  "C:\Windows\System32\cmd.exe"
REM cd "文件所在目录地址,如C:\Software\frp"
frpc -c frpc.ini
exit
使用以下脚本可以在windows下隐式运行frpc客户端:
代码:
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit

:begin
REM
frpc.exe -c frpc.ini

TOP

使用以下nginx配置可以使用正常80和443端口反代访问服务:
代码:
server {
   listen       80;
   listen       443 ssl;
   server_name  dev.ktsee.com;
   ssl_certificate /etc/nginx/sslcerts/dev.ktsee.com.crt;
   ssl_certificate_key /etc/nginx/sslcerts/dev.ktsee.com.key;

   location / {
       proxy_pass http://3sv.ktsee.com:7000;
   }
}

TOP

配置开机自启动服务

下载winsw:https://github.com/kohsuke/winsw ... W.NETCore31.x64.exe

放置到frp同一目录,重命名为winsw.exe,编写winsw.xml
代码:
<service>
    <id>frpc</id>
    <name>frpc</name>
    <description>frp with winsw, used for remote desktop</description>
    <executable>%BASE%\frpc.exe</executable>
    <arguments>-c %BASE%\frpc.ini</arguments>
    <onfailure action="restart" delay="60 sec"/>
    <onfailure action="restart" delay="120 sec"/>
    <logmode>reset</logmode>
</service>
管理员身份运行cmd,执行
代码:
winsw install
winsw start

TOP

发新话题