2019-4-29-dotnet-core-通过-frp-发布自己的网站
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
dotnet core 通过 frp 发布自己的网站
|
lindexi
|
2019-04-29 12:26:45 +0800
|
2019-02-15 09:22:33 +0800
|
dotnet dotnetcore frp
|
很多时候写出来的网站只能自己内网访问,本文告诉大家如何通过 Frp 将自己的 asp dotnet core 网站发布到外网,让小伙伴访问自己的网站
通过 frp 的方式,可以解决自己的服务器性能太差的问题,通过 frp 的方式需要先存在一个外网的服务器
本文分为三个部分,第一个是创建一个简单的 asp dotnet core 网站,第二是配置域名,第三是配置代理
要使用本文的方法需要以下三个条件
- 本地有 asp dotnet core 环境
- 有自己的外网服务器
- 有自己的域名
搭建本地网站
通过 asp dotnet core 搭建网站是十分简单的,这里搭建的只是一个简单的 api 服务
通过命令行进入一个文件夹,在这个文件里面创建 asp dotnet core 网站,通过在地址栏输入 cmd 就可以在命令行进入当前的文件夹
在文件夹输入下面代码创建一个 asp dotnet core api 网站
dotnet new webapi -o 网站的项目名
等待一下就可以使用命令行进入创建的网站的项目,我这里的项目是 lindexi 会在文件夹里面创建一个 lindexi 的程序
进入刚才创建的网站
cd 网站的项目名
这时打开里面的 Program.cs 文件,在里面修改一点代码,让 asp dotnet core 绑定本地的端口
在 asp dotnet core 绑定端口的方法是通过 IWebHostBuilder 配置使用的连接
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://0.0.0.0:8000")
.UseStartup<Startup>();
这里绑定了本地的所有的 8000 端口,可以通过本地的网站的内网 ip 本地 127.0.0.1 访问
保存关闭,然后运行下面的代码
dotnet run
如果看到下面的代码就是创建成功
Hosting environment: Development
Content root path: C:\lindexi\dotnet core 通过 frp 发布自己的网站\lindexi
Now listening on: http://0.0.0.0:8000
配置域名
这里域名不需要备案,简单的方法是从 godaddy.com 购买域名
在域名管理添加一个 a 记录
在这里写入 Host 或 Name 输入 server 作为你二级域名,然后在 Value 输入你的服务器地址
这里的 Host 的名字可以随意更改,但是这个值会在下面使用到
这里就让 dns 的 server.lindexi.com 指向我的服务器 ip 通过访问 http://server.lindexi.com 就可以访问服务器
配置代理
打开自己的服务器,从服务器下载 frp 程序
在 github 下载对应的 Linux 版本的 frp 程序,然后解压
进入 frp 文件夹,可以看到 frps.ini 文件,在这个文件输入下面的代码
[common]
bind_port = 7000
vhost_http_port = 8080
这里的 bind_port 是客户端连接服务器的端口,客户端需要知道服务器的 ip 和端口才能访问到服务器
这里 vhost_http_port 就是服务器发送服务的端口
然后在服务器运行 frps 这里的 frps 的 s 指的是服务器,里面的 frpc 的 c 指的是客户端
在本地的设备,从github下载和服务器版本相同的 frp 程序,注意版本要相同
打开 frpc.ini 文件,在里面写入下面代码
[common]
server_addr = 23.105.201.4
server_port = 7000 [web]
type = http
local_port = 8000
custom_domains = server.lindexi.com
注意,这里的 server_addr 填写的是你的服务器的 ip 这里的 server_port 对应服务器的 bind_port 的值
上面代码 custom_domains 的自定义域名需要先在自己的域名配置好
上面的代码的 local_port 就是通过 127.0.0.1 可以访问到的自己的网站的端口,在本文前面就使用 8000 作为 12.0.0.1:8000 网站
现在尝试在服务器运行一下 frp 服务
./frps -c ./frps.ini
在本地也启动 frp 客户端
./frpc -c ./frpc.ini
因为服务器对外的端口是 8080 也就是 frps.ini 的 vhost_http_port 的设置,需要通过域名:8080访问
我的域名设置是 server.lindexi.com 本地的 asp dotnet core api 的链接是 http://127.0.0.1:8000/api/values 在浏览器就需要通过下面网址访问
server.lindexi.com:8080/api/values
通过 frp 就可以将自己本地的服务通过自己的服务器让外面的小伙伴访问,这样就可以使用本地的几乎无限量的本地磁盘做文件存储,也可以使用本地的性能比服务器厉害很多的设备
2019-4-29-dotnet-core-通过-frp-发布自己的网站的更多相关文章
- dotnet core 通过 frp 发布自己的网站
很多时候写出来的网站只能自己内网访问,本文告诉大家如何通过 Frp 将自己的 asp dotnet core 网站发布到外网,让小伙伴访问自己的网站 通过 frp 的方式,可以解决自己的服务器性能太差 ...
- asp dotnet core 从 Frp 获取用户真实 IP 地址
我在本地开一个服务,然后通过 Frp 让小伙伴可以在外网访问我的 API 连接,但是直接通过 RemoteIp 拿到的是本地的地址.本文告诉小伙伴如何通过 Frp 可以拿到用户的真实 IP 地址 我写 ...
- 流程自动化RPA,Power Automate Desktop系列 - DotNet Core打包并发布Nuget Package
一.背景 DotNet Core通常基于Nuget来实现包管理,如果你想要把自己的实现共享给其他人,通常我们需要把本地项目打包好,然后发布到对应的Nuget Server上,以便于其他人可以查找.安装 ...
- dotnet core 跨平台编译发布
vs2017 建立的项目,在项目目录 ,执行 dotnet publish -r ubuntu.15.04-x64 dotnet publish -r linux-x64 dotnet publish ...
- dotnet core瘦身发布
需要安装nuget包Microsoft.Packaging.Tools.Trimming然后利用如下命令发布dotnet publish -r win10-x64 -c release --self- ...
- 手把手教你用Jenkins自动发布dotnet core程序
Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么 ...
- asp dotnet core 通过图片统计 csdn 用户访问
在 csdn 的访问统计里面,只能用 csdn 提供的访问统计,因为在 csdn 中不支持在博客加上 js 代码,也就是无法使用友盟等工具统计. 通过在 asp dotnet core 创建一个图片链 ...
- dotnet core 使用 CoreRT 将程序编译为 Native 程序
现在微软有一个开源项目 CoreRT 能通过将托管的 .NET Core 编译为单个无依赖的 Native 程序 这个项目现在还没发布,但是能尝试使用,可以带来很多的性能提升 使用 CoreRT 发布 ...
- dotnet core 发布只有一个 exe 的方法
在 dotnet core 发布的时候,会使用很多文件,这样发给小伙伴使用的时候不是很清真,本文告诉大家一个非官方的方法通过 warp 将多个文件打包为一个文件 和之前相同的方式发布一个 dotnet ...
- 这可能是最low的发布dotnet core站点到centos7
前言 不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash..我想说我电脑上的chrome已经crash太多次了 以后一定要搞离线编辑的. 正文 什么是.net core,bal ...
随机推荐
- 原 ASP.net out 和ref之间的区别
ref和out都是C#中的关键字,所实现的功能也差不多,都是指定一个参数按照引用传递.对于编译后的程序而言,它们之间没有任何区别,也就是说它们只有语法区别.总结起来,他们有如下语法区别: 1.ref传 ...
- Java文件写入
一,FileWritter写入文件 FileWritter, 字符流写入字符到文件.默认情况下,它会使用新的内容取代所有现有的内容,然而,当指定一个true (布尔)值作为FileWritter构造函 ...
- ajax返回后台编译时都对,返回error
首先看看你的dataType:‘json’ 类型是否与后台获取的类型一直.特别是json的格式对不对. 第二: 红括号里的有没有加
- 学习Python笔记---变量和简单数据类型
首先声明,这个是个人在自学的一些笔记,因为是小白,刚接触Python,之前也没有过类似的经验,所以很多东西对于其他人来说可能是小白级别的,写出来没有其他的意思就是自己整理然后记录一下,顺便分享出来,而 ...
- JavaScript对象继承方式
一.对象冒充 其原理如下:构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式).因为构造函数只是一个函数,所以可使 Parent 构造函数 成为 Children 的方法, ...
- css 始终显示滚动条,内容超出显示有滑块的滚动条,内容没有超出显示空的滚动条
1.内容没有超出显示空的滚动条 <div class="div1"> 前端开发者前端开发者前端开发者前端开发者前端开发者 </div> css代码: .di ...
- 安装springsource-tool-suite插件成功之后找不到spring的处理办法
最近学习spring,安装springsource-tool-suite插件,成功之后,在help-installation details里面可以找到安装的spring插件,却在window-pre ...
- webServices学习三(概念详解)
WebService通过HTTP协议完成远程调用: (深入分析) WebService只采用HTTP POST方式传输数据,不使用GET方式; -- 握手,WSDL-get, 普通http post的 ...
- idea小操作
1.IDEA 实用功能Auto Import:自动优化导包(自动删除.导入包) 2.设置System.out.println();等快捷键 3.将idea的背景修改为图片 4.Linux ifconf ...
- BootStrap框架选择
1. mentronic4.0 效果非常好,但是商业版收费 下面是一个.net的系统,基于mentronic4.0开发,感觉不错 http://www.cnblogs.com/guozili/p/34 ...