Ubuntu 20.04 部署 NET8 Web - Systemd 的方式 达到外网访问的目的

1.Ubuntu服务器环境安装

1.1 增加微软包安装源

bash 复制代码
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

1.2 Install the .NET SDK

bash 复制代码
# 更新本地软件包列表。原理:连接到软件服务器->检查可用更新->更新本地软件包列表
sudo apt-get update
# 安装 https 所依赖的包
sudo apt-get install apt-transport-https

# 安装.net sdk
sudo apt-get update
sudo apt-get install -y dotnet-sdk-8.0

# 查看dotnet 版本
sudo dotnet --version
sudo dotnet --info

1.3 Install Runtime

bash 复制代码
sudo apt-get update &&  sudo apt-get install -y aspnetcore-runtime-8.0

2.Ubuntu Web站点部署运行

2.1 发布包 上传到 /home/web

2.2 给 /home/web 添加执行权限

bash 复制代码
chmod +x -R  /home/web

2.3 创建Service文件

bash 复制代码
vim /usr/lib/systemd/system/mymvcweb.service

添加以下内容:

注意:这里我特意配置了 8801端口,最后要开放外网访问,不配置最终就走的 dotnet 默认的 5000端口

bash 复制代码
[Unit]
Description=MyMvcWeb WebSite Application
 
[Service]
WorkingDirectory=/home/web/
ExecStart=/usr/bin/dotnet /home/web/MyMvcWeb.dll --urls "http://*:8801"
Restart=always
# Restart service after 2 seconds if the dotnet service crashes:
RestartSec=2
KillSignal=SIGINT
SyslogIdentifier=mymvcweb
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
 
[Install]
WantedBy=multi-user.target

2.4 给 service 添加执行权限

bash 复制代码
chmod +x /usr/lib/systemd/system/mymvcweb.service

2.5 重新加载和启用开机自启

bash 复制代码
systemctl daemon-reload && systemctl enable mymvcweb.service

2.6 查看状态

bash 复制代码
systemctl status mymvcweb.service

3. 访问部署好的站点

3.1 服务器上访问 curl http://127.0.0.1:8801

3.2 公网访问

4. 恭喜,Success

附录:

其它指令参照

bash 复制代码
# 启动服务
systemctl daemon-reload && systemctl start mymvcweb.service
# 停止服务
systemctl daemon-reload && systemctl stop mymvcweb.service
# 重启服务
systemctl daemon-reload && systemctl restart mymvcweb.service

# 查看进程
ps -ef | grep mymvcweb
# 查看端口是否开放
netstat -tuln
相关推荐
码上暴富3 分钟前
vue2迁移到vite[保姆级教程]
前端·javascript·vue.js
sunshine-sm18 分钟前
CentOS Steam 9安装 Redis
linux·运维·服务器·redis·centos
土了个豆子的20 分钟前
04.事件中心模块
开发语言·前端·visualstudio·单例模式·c#
小熊h27 分钟前
MySQL集群高可用架构——组复制 (MGR)
linux·数据库·mysql
全栈技术负责人33 分钟前
Hybrid应用性能优化实战分享(本文iOS 与 H5为例,安卓同理)
前端·ios·性能优化·html5
xw542 分钟前
移动端调试上篇
前端
@菜菜_达1 小时前
Lodash方法总结
开发语言·前端·javascript
YAY_tyy1 小时前
基于 Vue3 + VueOffice 的多格式文档预览组件实现(支持 PDF/Word/Excel/PPT)
前端·javascript·vue.js·pdf·word·excel
棒棒的唐1 小时前
armbian平台ubuntu环境下telnet安装及启动,给pantherX2增加一个应急通道
linux·运维·armbian·telnetd
bug攻城狮1 小时前
CentOS 7 设置静态 IP 地址
linux·tcp/ip·centos