共计 1011 个字符,预计需要花费 3 分钟才能阅读完成。
宝塔部署.Net 项目
1. 首先在宝塔中安装好相应的.net 版本

2. 左上角添加项目
其他内容根据自己的需求配置,启动命令按照下面格式配置
<dotnet 环境目录 > ./< 自己项目的名称 >.dll --urls http://*:< 端口号 >
/www/server/dotnet/6.0.417/dotnet ./xxxxxxx.dll --urls http://*:8081
大致如下:

3. 配置好后运行 即可根据当前服务器 IP: 端口 访问 API 地址
配置内网穿透 +HTTPS 访问
如果不需要 HTTPS,则直接将内网穿透指向本地的 IP: 端口即可,下面讲述的是如何通过内网穿透 HTTPS 访问本地 API 服务
1. 在项目管理中将外网映射打开后,添加绑定域名

2. 配置好相应的 SSL 证书

3. 在配置文件中,监听除前面已经配置了的端口。如:我前面配置的项目端口的 8081,则我现在监听的是 8083

4. 做好内网穿透的 HTTPS 配置,以 frp 为例:在 frp.ini 配置文件中将 type 的值改为 https,并且端口也要是我们刚刚配置的监听端口 8083

这样,启动好内网穿透后 即可通过 https 访问我们的 API 接口服务
获取真实用户 IP
tip:我们如果通过内网穿透 (代理) 访问 API 接口的会,在程序内部始终会获取到本地 IP(127.0.0.1),因此通过以下方法可以做到获取真实用户的 IP
1. 在我们的内网穿透 frp.ini 文件中添加一段代码:
proxy_protocol_version = v2
加好后重启 frp 服务

2. 然后再回到我们网站的配置文件里
在监听接口后面加上一串内容 如下图
proxy_protocol

3. 继续往下看,在下图中加上内容。并且将原来的使用 #注释掉
proxy_set_header X-Forwarded-For $proxy_protocol_addr;

4. 配置保存好后,我们会发现 使用本地 IP+8083 这个端口无法正常访问 API 接口了,因为做了这些配置后 我们只通过 frp(代理)进行访问
5. 然后我们回到 frp 的地址上,看 https 是否访问正常,如果正常则成功
6. 在程序中获取用户真实 IP
在程序中,我们只需要使用代码获取请求头 X -Forwarded-For 的内容 即可获取到真实 IP
Request.Headers["X-Forwarded-For"];
