dotnet core 通过 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 就可以将自己本地的服务通过自己的服务器让外面的小伙伴访问,这样就可以使用本地的几乎无限量的本地磁盘做文件存储,也可以使用本地的性能比服务器厉害很多的设备

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AcWing 211. 计算系数

代码如下&#xff1a; #include <iostream> using namespace std; const int N 1010; const int MOD 10007; int c[N][N]; typedef long long LL; int power(int a,int b) {int res 1;a a%MOD;while(b--) res res*a%MOD;return res; }int main() {int a,b,k,n,m;c…

感谢所有支持wuhan2020项目的朋友!我们招换更多人加入!

2020年1月25日&#xff0c;春节&#xff0c;在这个特殊的日子&#xff0c;我们正式发起了《wuhan2020&#xff1a;武汉新型冠状病毒防疫开源信息收集平台》的开源项目&#xff0c;用开发者们的方式支援这场没有硝烟的战争。截至2020年1月27日17时&#xff0c;全国共有2823个确诊…

WTM系列视频教程:先导篇

WTM系列视频教程序章文字摘要&#xff1a;“这个视频教程我列了个提纲&#xff0c;分成12部分&#xff0c;比较详细的介绍了WTM的功能和使用方法。另外还有一些我个人对于编程的理解&#xff0c;当然个人理解这部分你们就当故事听&#xff0c;不一定对&#xff0c;哈哈。”“有…

我的领域驱动设计运用实例 - 领域啊领域

一、前言断断续续的也有在闲余时间接触领域驱动设计的相关知识&#xff0c;因为目前在工作中更多的还只是一名 crud boy&#xff0c;因此目前也只是对其中的某些知识点有知晓&#xff0c;实际使用的比较少&#xff0c;仅此而已。因此&#xff0c;趁着这个春节假期&#xff0c;整…

AcWing 503. 借教室

代码如下&#xff1a; #include <iostream> using namespace std; const int N 1000010; int r[N],d[N],s[N],t[N]; typedef long long LL; LL b[N]; int n,m; bool check(int mid) {for (int i 1;i<n;i) b[i] r[i]-r[i-1];for (int i 1;i<mid;i){b[s[i]]-d[i…

远程办公从学习开始,潜伏在家,技术如何逆袭?

今年的春节假期特别长&#xff0c;大家为了能够尽快结束武汉新冠肺炎&#xff0c;自主隔离在家。我也花了大概三天的时间写了一篇总结我公司当前支持远程办公的文章&#xff1a;远程办公经验为0&#xff0c;如何将日常工作平滑过度到线上? 这篇文章使用的全部是腾讯的产品&…

AcWing 499. 聪明的质监员

解题思路&#xff1a; https://www.acwing.com/solution/content/33961/ 代码如下&#xff1a; #include <iostream> using namespace std; const int N 200010; int w[N],v[N],L[N],R[N]; typedef long long LL; LL cnt[N],b[N]; int n,m; LL S; LL get_Y(int mid) {…

也读《人类简史》:从动物到上帝的智人

【读书笔记】| 作者 / Edison Zhou这是恰童鞋骚年的第178篇原创文章《人类简史&#xff1a;从动物到上帝》是一本评分极高的书&#xff0c;我在春节期间阅读完&#xff0c;信息量极大&#xff0c;现在将其重点内容总结整理成此文&#xff0c;分享与你。1关于《人类简史》《人类…

二分边界

转载地址&#xff1a; https://www.acwing.com/solution/content/33961/

重磅 | GitHub 2019 数字年报全文正式发布

摘要在开源日益重要的今天&#xff0c;我们需要一份建立在全域大数据基础上的相对完整、可以反复进行推演的数据报告&#xff08;报告、数据、算法均需开源&#xff09;。本项目为X-lab 开放实验室团队发起&#xff0c;旨在通过分析Github全网的开发者行为日志&#xff0c;通过…

dotnet 从零开始写一个人工智能 网络模型

本文将不使用任何人工智能框架&#xff0c;只用简单的 dotnet 的类&#xff0c;自己搭建一个人工智能网络。本文适合小伙伴跟着一步步写特别感谢老马的程序人生的帮助&#xff0c;本文有大量代码都是从如何利用 C# 抽象神经网络模型抄的在人工智能模型有不同的问题可以选用不同…

深度学习之tensorflow环境搭建

深度学习之tensorflow环境搭建&#xff1a; 1.搭建的步骤 1-1.破解版的Pycharm软件包下载 1-2.Ananconda软件包的下载 1-3.使用Anaconda Prompt 命令&#xff0c;首先输入 “conda create -n py37 python3.7 anaconda” 然后回车等待包的下载&#xff0c;其次激活py37&am…

SkyWalking学习笔记(CentOS环境)

基于 CentOS 环境使用 SkyAPM-dotnet 来介绍一下 SkyWalking&#xff0c; SkyAPM-dotnet 是 SkyWalking 的 .NET Agent环境要求JDK8Elasticsearch8080,9200,10800,11800,12800 端口不被占用Elasticsearch安装Elasticsearch下载安装(CentOS为例) 参考官方教程.下载并安装公共签名…

[蓝桥杯2019初赛]最大降雨量-模拟

题目描述 由于沙之国长年干旱&#xff0c;法师小明准备施展自己的一个神秘法术来求雨。 这个法术需要用到他手中的49 张法术符&#xff0c;上面分别写着1 至49 这49 个数字。 法术一共持续7 周&#xff0c;每天小明都要使用一张法术符&#xff0c;法术符不能重复使用。 每周&a…

用户登录的电话号码和密码进行测试PythonGUI实验

用户登录的电话号码和密码进行测试PythonGUI实验&#xff1a; 1.要求&#xff1a;对用户登录的电话号码和密码进行测试 2.电话号码&#xff1a;分为首字母不为0&#xff0c;长度必须为11为&#xff0c;类型全部为数字 3.密码&#xff1a;分为长度为6-12位&#xff0c;类型为AS…

武汉坚守第十二日——爆发期的困守待破

已经到了第十二天&#xff0c;不能出门的日子&#xff0c;浑身都是难受的&#xff0c;尤其对于我这样一个日常一天要步行10公里每年4000公里步行的人来说&#xff0c;坚持了四年的习惯变成这样&#xff0c;真心不舒服&#xff0c;于是在室内开始了一些自救——自救运动&#xf…

[蓝桥杯2019初赛]完全二叉树的权值-完全二叉树的性质

注意: j < n不能少!!! 代码如下&#xff1a; #include <iostream> using namespace std; const int N 100010; typedef long long LL; int a[N];int main() {int n;LL maxv -1e18;cin >> n;int depth 0;for (int i 1; i < n; i)cin >> a[i];for …

机器学习前的热身(必备)

机器学习前的热身&#xff08;必备&#xff09; 备注&#xff1a; 本内容参考李航的《统计学习方法第二版》第一章 注&#xff1a;如果本篇内容存在错误&#xff0c;望大家留言批评指正。

WTM系列视频教程:初体验

WTM系列视频教程第一章&#xff1a;初体验文字摘要&#xff1a;“如果你没用过wtm&#xff0c;今天的教程肯定能让你眼前一亮&#xff0c;这个框架竟然这么牛逼么&#xff1f;开发速度这么快么&#xff1f;”“至于为什么叫WTM&#xff0c;他的全称是WalkingTec MVVM&#xff0…

[蓝桥杯2019初赛]修改数组-并查集

代码如下&#xff1a; #include <iostream> using namespace std; const int N 1000010; int a[N];int find(int x) {if (a[x] ! x)a[x] find(a[x]);return a[x]; }int main() {int n;cin >> n;for (int i 1; i < N; i)a[i] i;for (int i 1; i < n; i)…