.net 程序员的centos命令总结
1,ssh相关
在初始化一台云服务器的时候,第一件事情就是去把该关的门都关上,首先第一关就是禁用root登录,禁用密码登录,顺便改一下远程登录端口,让登录都通过ssh密钥对来进行,阿里云里有密钥对管理,创建完以后会下载一个私钥给你,公钥通过将密钥对绑定到新建的服务器放到新服务器的目录/root/.ssh/authorized_keys 这个文件就是公钥.
一,给root设置一个密码
passwd root #输入两次密码确认
二,创建一个用于远程登陆的用户,我的新用户名叫newuser
useradd newuser
passwd newuser //输入两次密码确定,新用户就创建成功了
三,使得私钥可以用于newuser登录
#1,创建文件夹
mkdir /home/newuser/.ssh
#2,复制公钥到用户的.ssh目录
cp /root/.ssh/authorized_keys /home/newuser/.ssh/
#3,修改/home/newuser/.ssh/ 这个文件夹所属的用户和权限 【以root身份才可以执行】
chown newuser /home/newuser/.ssh/ -R #修改/home/newuser/.ssh/归属 newuser所有,-R表示递归执行 chown是change own的简称
#4,修改权限authorized_keys公钥的权限,修改文件所属者和相应的权限
chmod 700 /home/newuser/.ssh/authorized_keys
#chmod的是change mode的简称,权限分三位,第一位的数字表示文件所属者的权限,第二位表示文件所在组其他人的对文件的权限,第三位表示其他人对文件的权限
#文件的权限分三种分别位读写和执行,对应的二进制码位100【读】,010【写】 和001【执行】,10进制表示的文件权限即为相应权限的和,比如读写执行就是100+010+001=111转换成10进制就是7
#chmod和chown可以说是非常常用的命令,如果根据他们原来英文名称去记忆会容易许多。
四,通过MobaXterm_Personal测试新用户通过ssh密钥对连接是否可以成功
五,开启防火墙,开放新端口,禁用默认远程端口
#1,开启防火墙,并设置开机启动
systemctl start firewalld.service
systemctl enable firewalld.service
#开启用于远程的端口为保险起见先留着22
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=1000/tcp --permanent #控制1000端口可以通过防火墙【作为远程登录端口】
firewall-cmd --zone=public --remove-port=22/tcp --permanent #关闭22端口
firewall-cmd --reload #刷新配置,使得配置生效
# 修改ssh配置使得1000端口可用于远程登录
vim /etc/ssh/sshd_config #按i进入编辑状态,按esc退出编辑状态,进入命令状态,命令状态输入 :/xxx,输入完按回车根据关键字xxx搜索,按n下一个 命令状态按:u撤销 ,命令状态输入:wq保存并退出按 :q退出,按q!强制退出不保存
#添加Port 1000 添加Port 22[默认会有,先不要去掉,等所有修改就绪,没有问题的时候再去掉],执行ssh_port端口添加
semanage port -l | grep ssh #查看目前ssh可用端口
semanage port -a -t ssh_port_t -p tcp 1000 #添加1000端口到ssh可用端口列表
systemctl restart sshd.service #重启ssh服务,为安全起见,请勿关闭当前命令窗口,打开一个新终端去连接服务器,端口写1000,用户名写新加的newuser,选中私钥 如果可以进去系统说明配置成功了,紧接着禁用root登录和密码登录
vim /etc/ssh/sshd_config #修改下边两个配置
PermitRootLogin no
PasswordAuthentication no
systemctl restart sshd.service #重启服务
打开阿里云,点击安全组,添加需要开启的端口
2,服务相关,作为.net程序员于centos的交集大多数是发布一些网站,网站发布完以后常用的一些操作可能还会包括查看服务日志,状态等。
安装.net core环境 参考 docs for dotnet install
#1,创建第一个服务,centos中所有与配置相关的东西几乎都在/etc/目录下,服务相关的配置也在这里 首先创建一个服务启动的配置文件
vim /etc/systemd/system/你的服务.service
# 如下就是一个示例的dotnet的服务配置, 其中User 填写新加的用户newuser,workingdirectory写发布到centos中的程序目录,
[Unit]
Description=Example .NET Web API App running on Ubuntu
[Service]
WorkingDirectory=/var/www/helloapp
ExecStart=/usr/bin/dotnet /var/www/helloapp/helloapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=newuser
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
#将上述内容复制到 你的服务.service中,修改关键配置,workingdir,ExecStart,以及Environment,将程序文件复制到workingdir指定的目录中开启服务
systemctl enable 你的服务.service #添加开机自动启动
systemctl start 你的服务.service #启动服务
systemctl stop 你的服务.service #启动服务
systemctl restart 你的服务.service #重启服务
systemctl status 你的服务.service #查看服务状态
journalctl -fu 你的服务.service #查看服务日志,在调试的时候会非常有用,可以实时看到相关服务的输出
journalctl -u 你的服务.service #查看服务的所有日志
journalctl -u >a #将所有日志文件写入到a文件中
Environment 开头的配置就是环境相关的配置,这里可以设置启动urls,响应超时等… 参考 .net core服务主机配置