自我介绍
大家好,我是一名大四的学生,专业网络工程。
大四面临就业,有一个上线的项目在就业中是一个加分项;为了好就业,同学几个人就合计做一个项目出来。
我负责做一个某平台公众号的后端程序;由于需要有一个拥有外网IP的计算机进行测试,经过搜索引擎推荐,得知阿里云可以通过学生身份免费领取到一个14+60天的服务器,因此就来到了这里。
服务器一些使用上的经验
使用Putty远程连接云服务器
不知为何,每天每次进入阿里云控制台,都需要重新登录一次阿里云账号,可能是为了安全吧;
putty软件可以直接连接服务器,而不需要登录阿里云,一定程度上提高了效率;
只需要简单的配置,就可以实现通过putty软件快速登录Linux服务器;
登录方式可以选择账号密码方式,也可以使用密钥方式,这里介绍账号密码方式。
方法
- 首先打开putty软件,进行简单的配置(第5点非常重要)
- 配置ip,这里可以配置用户名,后面就可以不用输入用户名了。在上面的框框里输入“用户名@IP地址”,后面为端口号;
- 阿里云默认用户名为root,端口号默认22,ip地址可以到控制台查询;
- putty默认字体非常不友好,建议修改默认字体以拯救可能瞎了的眼睛;到Window -> Appearance下,点击“Change...”按钮修改字体;
- 默认编码不支持中文,在实际使用中会出现乱码现象,若终端不使用中文可以考虑不进行这一步。在Window -> Translation下,将“Remote character set”改为“UTF-8”;UTF-8编码支持中文。
- 非常重要的一点,在配置结束后,返回“Session”选项,在“Saved Session”输入框输入要保存的会话名,可以随意写,或写入“xxx's aliyun session”表示xx的阿里云服务器,然后点击save按钮保存会话。这一步非常重要,我就因为没有保存,多次重新配置这些选项。
- 配置结束以后,双击会话名就可以连接阿里云服务器了。密码输入不会显示,输入后回车就可以登录成功了;
设置安全组为要使用的服务开放端口
应用的对外开放需要打开指定端口才能正常运行,这里从阿里云提供的安全组功能开始配置;
进入安全组页面
- 首先打开实例页面,点击安全组的名字进入安全组页面
- 安全组页面分为“入方向”和“出方向”;
出方向不用配置,默认全开就可以;
主要配置的是入方向:
配置安全组
如果要进行一些业务,必须开放相应的端口;比如要开一个网页(搭建HTTP服务器),就需要打开80端口。下面是方法:
- 点击手动添加按钮开始添加自己的安全组策略
这里有几个选项:
- 授权策略,就是是否允许进行访问;这里选允许;
- 优先级,如果有别的安全组策略与本策略有冲突,优先级高的会覆盖优先级低的策略;
- 协议类型:有TCP、UDP等,这里选择TCP就可;
- 这里是一些解释:默认情况下大部分业务都使用TCP协议,比如搭建HTTP服务器、游戏服务器等;我要做的是搭建一个某公众平台的后端程序,使用的是HTTP协议,使用TCP就可;
- 端口范围:不同业务类型需要选择不同的端口;
- HTTP服务器默认为80端口或443端口;
- 我的世界服务器默认端口25565;
- SpringBoot项目默认端口8080;
- ssh远程连接默认使用端口22。putty使用的就是ssh协议。
- 授权对象,也就是允许谁访问,这里写0.0.0.0/0就可;
- 0.0.0.0/0表示允许任何人访问;由于目前我们使用的IP都是动态的,不可能确定到允许部分人访问,所以这里写任何人就可,安全方面可以交给业务层去处理;
- 描述,嗯..字面意思,不写或随意写;
- 在输入结束后,点击保存按钮就可以使规则生效了;
这里可以考虑允许22端口访问,这个是ssh协议(putty远程连接)需要用到的端口;
screen多终端
Linux有哪些方式后台运行程序
在Linux中,使一个程序运行于后台有多种方式,比如:
- 在要执行的程序后添加“&”符号,执行后输出结果会出现在控制台,在此期间可以进行其他操作;执行后返回进程的PID。(进程PID唯一标识一个进程,用于控制进程,比如不想要了可以使用PID和相关命令终止进程运行)
如图中50198就是进程的PID;
这个方式有个缺点,就是进程不易控制,且进程会随着当前会话的结束而终止;
这个命令一般用于临时运行一些程序; - 使用Linux服务功能,服务可以真正的实现后台运行程序,具体使用方法可以到搜索引擎查看
这个方法虽然可以使程序后台运行,但不能直接进行交互,还是有些不方便;
一般用于一些一直后台运行的程序,比如mysql,HTTP服务器(或者....游戏服务器?!) - Linux默认支持8个终端,可以切换使用,这个没有明显的缺点;
- 还有一个方法,就是使用软件screen;
Screen安装
使用命令yum安装screen软件
sudo yum install screen
(由于默认为root用户,其实这里可以不用sudo前缀)
(我的已经安装,所以显示“Nothing to do.”)
Screen使用说明
这里给出一些简单的操作
操作过程(命令或快捷键) | 描述 |
screen -S 会话名 | 创建并进入一个会话。会话名唯一指定一个会话。注意,S是大写。 |
screen -r 会话名 | 进入一个放在后台的会话。 |
screen -ls | 显示当前的会话列表 |
ctrl + A D | 将当前会话放在后台,退出当前页面到原终端页面。注意:这里的按键指的是先按下ctrl键不松开,按下A后松开,然后再按下D后松开,最后松开ctrl键。 |
使用示例
比如说,我要运行一个可以进行数据库增删改查的java程序,然后到mysql程序查看增删改查的结果;
- 首先创建一个名为java的会话表示这个会话用于运行java程序
screen -S java
然后运行一个java程序
按下CTRL + A D
后返回原本的终端页面
这里会输出一句信息,表示从哪个终端返回回来;
- 再次创建一个会话mysql,运行mysql程序并连接数据库;
- 使用
ctrl + A D
返回,使用screen -r java
再次回到java会话。会发现之前的java程序仍旧在正常运行;
这样就是screen的使用了。
收获总结
putty忘记保存会话
在第一次使用putty的时候,由于没有进行配置每次运行都需要重新配置;
后来在某次使用中观察到putty有保存会话功能,就决定下次使用的时候进行会话保存,然后..这个现象发生了好多次,
每次都会把这个事情忘记,连接后才想起来没有进行会话保存。(为什么putty没有提示让我去保存啊!╥﹏╥)
安全组开放端口
第一次使用阿里云运行自己的HTTP页面,发现通过外网不能访问到自己的页面;
以为是linux防火墙导致,所以在ufw或iptables上捣鼓了很长时间...
后来得知阿里云内置一个防火墙叫安全组,需要自己开放端口才行;
阿里云网页端远程连接可以保存会话
使用阿里云的Workbench功能登录Linux后,关闭网页会保存未关闭的会话,
再次进入此页面会发现之前的命令记录仍旧存在。
个人作品
目前使用阿里云运行了一个SpringBoot项目、使用Nginx+hexo+git搭建了一个简单的博客页面。