Angularを少し触っておくかと思い開発機(CentOS)のVagrant上にインストール。
public network経由で作業端末(非力なWindows)からつなごうと思っても接続を拒否された。
このサイトにアクセスできません 192.168.1.108 で接続が拒否されました。 192 168 108 4200 を Google で検索してください ERR_CONNECTION_REFUSED
pingは通るけど、開発機(Vagrantのホスト)からもcurlでつながらない。vagrantに入ってチェックするとlocalhostなら繋がる。
curl http://192.168.1.108:4200 curl: (7) Failed connect to 192.168.1.108:4200; 接続を拒否されました [root@localhost log]# curl http://localhost:4200 <!doctype html> <html> <head> <meta charset="utf-8"> <title>TestWeb</title> <base href="/"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="image/x-icon" href="favicon.ico"> </head> <body> <app-root>Loading...</app-root> <script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body> </html>
ぐぐるとhostオプション付けないと、localhostしかlistenしないらしい
[root@localhost log]# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1201/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1719/master
tcp 0 0 127.0.0.1:4200 0.0.0.0:* LISTEN 3792/@angular/cli
ng serve –host 192.168.1.108
としておいて確認
[root@localhost log]# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1201/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1719/master
tcp 0 0 192.168.1.108:4200 0.0.0.0:* LISTEN 3827/@angular/cli
Local Addressに設定される。
調べる過程でSELinuxとFirewallとめた。
SELinuxは起動だけだとaudit.logに何もでていない。動作確認でハマりたくないのでpermissiveのまま時々auditみて確認ぐらいにしておく。
Firewallはportが空いていないので空けておく。(色々あける必要がでて面倒になったらFirewallとめたまま勉強する)
[vagrant@localhost ~]$ sudo firewall-cmd --list-ports --zone=public (空欄) [vagrant@localhost ~]$ sudo firewall-cmd --add-port=4200/tcp --zone=public --permanent success [vagrant@localhost ~]$ sudo firewall-cmd --reload success [vagrant@localhost ~]$ sudo firewall-cmd --list-ports --zone=public 4200/tcp
hostオプションのドキュメントはぱっとみ見つからなかったけど、いつものGoogleさんでドキュメントは無いものと考えたらいいのかな??