.net webapi项目部署宝塔+内网穿透+HTTPS+获取真实用户IP

747次阅读
没有评论

共计 1011 个字符,预计需要花费 3 分钟才能阅读完成。

宝塔部署.Net 项目

1. 首先在宝塔中安装好相应的.net 版本

.net webapi 项目部署宝塔 + 内网穿透 +HTTPS+ 获取真实用户 IP

2. 左上角添加项目

其他内容根据自己的需求配置,启动命令按照下面格式配置

<dotnet 环境目录 > ./< 自己项目的名称 >.dll --urls http://*:< 端口号 >

/www/server/dotnet/6.0.417/dotnet ./xxxxxxx.dll --urls http://*:8081

大致如下:

.net webapi 项目部署宝塔 + 内网穿透 +HTTPS+ 获取真实用户 IP

3. 配置好后运行 即可根据当前服务器 IP: 端口 访问 API 地址

 

配置内网穿透 +HTTPS 访问

如果不需要 HTTPS,则直接将内网穿透指向本地的 IP: 端口即可,下面讲述的是如何通过内网穿透 HTTPS 访问本地 API 服务

1. 在项目管理中将外网映射打开后,添加绑定域名

.net webapi 项目部署宝塔 + 内网穿透 +HTTPS+ 获取真实用户 IP

2. 配置好相应的 SSL 证书

.net webapi 项目部署宝塔 + 内网穿透 +HTTPS+ 获取真实用户 IP

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

.net webapi 项目部署宝塔 + 内网穿透 +HTTPS+ 获取真实用户 IP

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

.net webapi 项目部署宝塔 + 内网穿透 +HTTPS+ 获取真实用户 IP

这样,启动好内网穿透后 即可通过 https 访问我们的 API 接口服务

 

获取真实用户 IP

tip:我们如果通过内网穿透 (代理) 访问 API 接口的会,在程序内部始终会获取到本地 IP(127.0.0.1),因此通过以下方法可以做到获取真实用户的 IP

1. 在我们的内网穿透 frp.ini 文件中添加一段代码:

proxy_protocol_version = v2

加好后重启 frp 服务

.net webapi 项目部署宝塔 + 内网穿透 +HTTPS+ 获取真实用户 IP

2. 然后再回到我们网站的配置文件里

在监听接口后面加上一串内容  如下图

proxy_protocol

.net webapi 项目部署宝塔 + 内网穿透 +HTTPS+ 获取真实用户 IP

3. 继续往下看,在下图中加上内容。并且将原来的使用 #注释掉

proxy_set_header X-Forwarded-For $proxy_protocol_addr;

.net webapi 项目部署宝塔 + 内网穿透 +HTTPS+ 获取真实用户 IP

4. 配置保存好后,我们会发现 使用本地 IP+8083 这个端口无法正常访问 API 接口了,因为做了这些配置后 我们只通过 frp(代理)进行访问

5. 然后我们回到 frp 的地址上,看 https 是否访问正常,如果正常则成功

6. 在程序中获取用户真实 IP

在程序中,我们只需要使用代码获取请求头 X -Forwarded-For 的内容  即可获取到真实 IP

Request.Headers["X-Forwarded-For"];
正文完
 20
TheStars
版权声明:本站原创文章,由 TheStars 于2025-03-12发表,共计1011字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)

星光博客

随机文章