连接服务器
# 我直接用 mac 的 terminal 通过 ssh 连接 $ ssh 用户名@云服务器公网ip # 比如我使用超级管理员账号 root 登录,服务器公网 ip 为 xxx.xxx.xxx.xxx $ ssh root@xxx.xxx.xxx.xxx
免密码登录
- 生成 ssh 公钥和私钥
ssh-keygen -t sra
- 一路回车,最后会在用户根目录下的一个叫做 .ssh 的文件夹,找到里面的 id_rsa.pub 文件,复制里面很长的一串内容
- 先输密码登录远程服务器,如果你的账户是 root,那么打开 /root/.ssh/authorized_keys,将刚才复制的内容粘贴进去,保存,下次连接就不需要输密码了,如果没有这个文件,手动创建即可
注意:
解决 linux 的中文乱码问题
# 1. 给系统添加中文字符编码 $ sudo locale-gen zh_CN.UTF-8 # 2. 给 /var/lib/locales/supported.d/ 下的 local(我并没有找到这个文件,只有en这个文件)文件追加内容 $ echo 'zh_CN.UTF-8 UTF-8' >> en
安装 node 环境
据说通过 apt-get 安装的 node 版本低的吓人,所以还是按照网上的办法先安装 nvm(一个 node 的版本管理工具),再通过 nvm 安装 node
# 1. 安装 nvm (装完可能要重启终端,也就是重新连接服务器) $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash # 2. 安装 node $ nvm install node # 3. 查看版本确保已经装好 $ node -v && npm -v
启动服务
- 直接
node server.js
启动成功了 - 然而我在本地浏览器输入服务器ip:端口号并不能访问
- 通过命令
netstat -apn
查看端口占用情况,没有找到 server.js 启动服务监听的端口号 - 确保服务没有问题之后,我又找到了这个命令
netstat -apn | grep 端口号
可以查看某个端口的占用情况,
发现确实是 node 在监听没有问题 - 那为什么不能访问呢? google 之后发现有人说是防火墙的问题,我一下想起来,在建服务器实例的时候,好像确实是让我选要开放哪些端口,我选了 http 的 80,https 的 443 和一些其他的什么想不起来了
- 修改 server.js 里面的端口,将它改成默认的 80 端口
- 启动服务,本地浏览器直接访问服务器 ip,奇迹出现了!
设置防火墙
# 1. 查看是否安装 iptables $ whereis iptables # 安装 iptables $ sudo apt-get install iptables # 添加规则,开放 9999 端口 $ iptables -A INPUT -p tcp --dport 9999 -j ACCEPT # 保存规则 $ sudo iptables-save # 持续化规则(否则重启之后规则消失) $ sudo apt-get install iptables-persistent $ sudo netfilter-persistent save $ sudo netfilter-persistent reload
补充内容
- 新的 ubuntu 推荐使用
apt
代替原来的apt-get
来使用,因为 apt 更好用 : ) - 初次使用 apt 记得先
sudo apt update
- 更新包
sudo apt update && sudo apt upgrade
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。