全部步驟在MAC 電腦環境下操做node
一、購買阿里雲ECS服務器,我選用的 ubantu 14.0.4 (64位),購買的時候輸入的密碼記錄下來,沒有設置的話能夠隨後在ECS控制檯修改
二、瀏覽器進入阿里雲平臺 -> ECS控制檯 -> 實例列表
三、查看實例的信息:記錄下本身的IP(公) 47.xxx.xxx.xxx
四、點擊管理,能夠修改一下實例名稱什麼的,默認是一串很差識別的亂碼,能夠改爲本身好好記的。
五、在本地的打開終端: 輸入 $ ssh root@47.xxx.xxx.xxx ECS服務器公網 IP遠程鏈接,輸入本身的遠程ubantu 服務器密碼nginx
可能會提示如下信息 選yes 而後再輸入遠程服務器密碼密碼便可。看到Welcome to Ubuntu。。。證實鏈接成功git
wjw$ ssh root@47.xxx.xxx.xxx The authenticity of host '47.xxx.xxx.xxx (47.xxx.xxx.xxx)' can't be established. ECDSA key fingerprint is SHA256:Nq44XG9TtdnZ7yNE6P0k0S2FOGmiz/sdSkmu2j7ze2k. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '47.xxx.xxx.xxx' (ECDSA) to the list of known hosts. root@47.103.101.102's password: Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-93-generic x86_64) * Documentation: https://help.ubuntu.com/ Welcome to Alibaba Cloud Elastic Compute Service ! Last login: Sun Jun 2 15:22:59 2019
# sudo apt-get update 。。。 Reading package lists... Done
$ sudo apt-get install git vim openssl build-essential libssh-dev wget curl
中間會提示你,安裝包會佔用多少磁盤空間,選擇輸入yes就好github
到github 上搜索nvm
https://github.com/nvm-sh/nvm
找到安裝命令,第二步咱們已經安裝了 curl, 直接按照 網頁命令安裝就好
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bashubuntu
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 13226 100 13226 0 0 7074 0 0:00:01 0:00:01 --:--:-- 7076 => Downloading nvm from git to '/root/.nvm' => Cloning into '/root/.nvm'... remote: Enumerating objects: 278, done. remote: Counting objects: 100% (278/278), done. remote: Compressing objects: 100% (249/249), done. remote: Total 278 (delta 33), reused 88 (delta 16), pack-reused 0 Receiving objects: 100% (278/278), 142.36 KiB | 0 bytes/s, done. Resolving deltas: 100% (33/33), done. Checking connectivity... done. => Compressing and cleaning up git repository => Appending nvm source string to /root/.bashrc => Appending bash_completion source string to /root/.bashrc => Close and reopen your terminal to start using nvm or run the following to use it now: export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
安裝好以後 須要從新連一下服務器,使咱們的nvm命令生效.
用 # nvm ls 命令查看nodeJS的版本狀況vim
$ root@47.x.x.x ... root@Jarvis:~# nvm ls N/A iojs -> N/A (default) node -> stable (-> N/A) (default) unstable -> N/A (default)
$ nvm install node #或者 $ nvm use v12.3.1 # 也能夠用 如下命令 來指定默認版本 $ nvm alias default v112.3.1 # 最後 查看版本狀況 $ nvm ls root@Jarvis:~# nvm ls -> v12.3.1 default -> node (-> v12.3.1) node -> stable (-> v12.3.1) (default) stable -> 12.3 (-> v12.3.1) (default) iojs -> N/A (default) unstable -> N/A (default) lts/* -> lts/dubnium (-> N/A) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.16.0 (-> N/A) lts/dubnium -> v10.16.0 (-> N/A) root@Jarvis:~#
一、在 nodeJS 官網的文檔裏 拷貝示例代碼,修改 端口號 爲3010
二、在 服務端的根目錄下建立 server.js 文件
$ vim server.js
粘貼示例代碼:瀏覽器
const http = require('http'); const hostname = '127.0.0.1'; const port = 3010; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
三、保存運行
$ node server.js
//配置ubantu 防火牆
$ sudo vi /etc/iptables.up.rules
在vim下輸入bash
-A INPUT -s 127.0.0.1 -p tcp --destination-port 3010 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -s 127.0.0.1 -p tcp --soruce-port 3010 -m state --state ESTABL ISHED -j ACCEPT ~
因爲服務器以前沒有配置過任何 iptables ,打開的 /etc/iptables.up.rules 是空文件,因此,能夠先在 命令行執行如下命令
先停用iptables服務器
$sudo iptalbes -F $sudo iptables -X $sudo iptables -Z $sudo iptables -P INPUT ACCEPT v$sudo iptables -P OUTPUT ACCEPT $sudo iptables -P FORWARD ACCEPT $sudo modprobe -r ip_tables
再啓用ssh
# 本地進程 lo 的 INPUT 和 OUTPUT 連接,eth0 的 INPUT 鏈 $sudo iptables -A INPUT -i lo -j ACCEPT $sudo iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -jACCEPT $sudo iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j LOG $sudo iptables -A OUTPUT -o lo -j ACCEPT #開放SSH端口22 iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT #開放Web端口80 iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT #開放FTP端口2一、20 iptables -A INPUT -p tcp --dport 20 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT #刪除FTP端口2一、20 iptables -D INPUT -p tcp --dport 20 -j ACCEPT iptables -D INPUT -p tcp --dport 21 -j ACCEPT #容許loopback(否則會致使DNS沒法正常關閉等問題) IPTABLES -A INPUT -i lo -p all -j ACCEPT (若是是INPUT DROP) IPTABLES -A OUTPUT -o lo -p all -j ACCEPT (若是是OUTPUT DROP) #保存iptables規則 iptables-save > /etc/iptables.up.rules $sudo modprobe ip_tables #修改 /etc/network/interfaces ,添加下面末尾2行腳本 auto eth0 iface eth0 inet dhcp pre-up iptables-restore < /etc/network/iptables.up.rules post-down iptables-save > /etc/network/iptables.up.rules
在 iptables.up.rules 文件中 ,能夠在 COMMIT一行的上方添加本身須要的規則
# Generated by iptables-save v1.4.21 on Sun Jun 2 17:45:31 2019 *filter :INPUT ACCEPT [1:40] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [465:67402] -A INPUT -i lo -j ACCEPT -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i eth0 -m state --state INVALID,NEW -j LOG -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT -A OUTPUT -o lo -j ACCEPT COMMIT # Completed on Sun Jun 2 17:45:31 2019
而後保存
:wq
從新加載 iptables
$sudo iptables-restore < /etc/iptables.up.rules
關閉沒必要要的服務
sudo ufw stop sudo service nginx stop
用node命令打開 server.js 運行服務
root@Jarvis:~# node server.js Server running at http://127.0.0.1:3010/
再在另外一個終端裏啓動一個 遠程服務
而後再命令行裏 輸入:
curl http://127.0.0.1:3010 發現服務啓動成功
root@Jarvis:~# curl http://127.0.0.1:3010 Hello, World! root@Jarvis:~#
//指定 node 版本並 設爲默認使用版本 $nvm use v10.16.0 && nvm alias default v10.16.0