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
相关推荐
Moment5 小时前
Vibe Coding 时代,到底该选什么样的工具来提升效率❓❓❓
前端·后端·github
IT_陈寒6 小时前
SpringBoot性能飙升200%?这5个隐藏配置你必须知道!
前端·人工智能·后端
小时前端7 小时前
React性能优化的完整方法论,附赠大厂面试通关技巧
前端·react.js
Nicko7 小时前
Jetpack Compose BOM 2026.02.01 解读与升级指南
前端
小蜜蜂dry7 小时前
nestjs学习 - 控制器、提供者、模块
前端·node.js·nestjs
优秀稳妥的JiaJi7 小时前
基于腾讯地图实现电子围栏绘制与校验
前端·vue.js·前端框架
前端开发呀8 小时前
从 qiankun(乾坤) 迁移到 Module Federation(模块联邦),对MF只能说相见恨晚!
前端
没想好d8 小时前
通用管理后台组件库-10-表单组件
前端
恋猫de小郭8 小时前
你用的 Claude 可能是虚假 Claude ,论文数据告诉你,Shadow API 中的欺骗性模型声明
前端·人工智能·ai编程