curl: (7) Failed to connect to x.x.x.x port xxxx: ホストへの経路がありません

##### curl: (7) Failed to connect to x.x.x.x port xxxx: ホストへの経路がありません
表題の通りですが, 今回は, **curl** コマンドを実行した際に表題の様な現象に出くわしドツボにはまってしまったので, 次回を込めて書いていきたいと思います。
***
###### まず, curl コマンドを打ってみます。
```command:cmd
curl ifconfig.io
/*===============================================================*/
[2018-09-26 00:50:37.793] curl: (7) Failed to connect to 192.168.1.110 port 3128: ホストへの経路がありません
/*===============================================================*/
```
**Failed to connect to 192.168.1.110 port 3128**となっていますね。
ようは, squid サーバにアクセスできませんでしたよということです。
**192.168.1.110**ローカルIPですが, 今までは正常に動いていたのでローカルIPに問題があるのに気づくまで凄く時間を要してしまいました。
###### 現在のIPアドレスを確認してみます。
```command:cmd
ip addr show eth0
/*===============================================================*/
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:72:16:d3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.113/24 brd 192.168.10.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 2404:7a82:62c0:3600:ba27:ebff:fe72:16d3/64 scope global mngtmpaddr dynamic
       valid_lft 2591888sec preferred_lft 604688sec
    inet6 fe80::ba27:ebff:fe72:16d3/64 scope link
       valid_lft forever preferred_lft forever
/*===============================================================*/
```
コンピュータはイーサネット接続しているので **eth0** を指定しています。
**inet** の部分を見てみると **inet 192.168.10.113/24** となっていることが確認できますね。
curl のエラー内容は, **Failed to connect to 192.168.1.110** でしたね。
明らかに, 参照している IP アドレスが違うことが確認できます。
参照しているところが違うのでつながらなくて当然ですね。

###### curl コマンドでプロクシを介するように設定されているファイルを見ます。
```command:cmd
grep 192.168.1.110 /etc/*
/*===============================================================*/
/etc/profile:MY_PROXY_URL="http://192.168.1.110:3128/"
/*===============================================================*/
```
ごり押しで検索したら結果, どうやら **/etc/profile** に定義されているようですね。
では, このファイルを変更してみます。

```command:cmd
vim /etc/profile
/*===============================================================*/
MY_PROXY_URL="http://192.168.1.110:3128/ ← 削除
MY_PROXY_URL="http://192.168.10.113:3128/ ← 削除した行に追加
/*===============================================================*/
```
**inet** に表示されていた IP アドレスに書き換えます。

```command:cmd
diff -u /etc/profile.bak20180926 /etc/profile
/*===============================================================*/
--- /etc/profile.bak20180926    2018-07-15 05:42:36.650026936 +0900
+++ /etc/profile        2018-09-26 02:53:54.843744162 +0900
@@ -76,7 +76,7 @@
 unset -f pathmunge

 # squid プロキシサーバを環境変数に設定する
-MY_PROXY_URL="http://192.168.1.110:3128/"
+MY_PROXY_URL="http://192.168.10.113:3128/"

 HTTP_PROXY=$MY_PROXY_URL
 HTTPS_PROXY=$MY_PROXY_URL
/*===============================================================*/
```
ちゃんと書き換えられていることが確認できますね。

###### 設定変更した profile の適用をします。
```command:cmd
source /etc/profile
/*===============================================================*/
出力なし
/*===============================================================*/
```
これで, profile の内容が適用されます。

###### curl の動作確認
```command:cmd
curl -v ifconfig.io
/*===============================================================*/
* Rebuilt URL to: ifconfig.io/
* Uses proxy env variable http_proxy == 'http://192.168.10.113:3128/'
*   Trying 192.168.10.113...
* TCP_NODELAY set
* Connected to 192.168.10.113 (192.168.10.113) port 3128 (#0)
> GET http://ifconfig.io/ HTTP/1.1
> Host: ifconfig.io
> User-Agent: curl/7.61.1
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 OK
< Date: Tue, 25 Sep 2018 17:57:27 GMT
< Content-Type: text/plain; charset=utf-8
< Content-Length: 16
< Set-Cookie: __cfduid=da22f21666c290c3791ae6a454a2fb9b51537898247; expires=Wed, 25-Sep-19 17:57:27 GMT; path=/; domain=.ifconfig.io; HttpOnly
< Server: cloudflare
< CF-RAY: 45ff5f8d2442a5a8-NRT
< X-Cache: MISS from unknown
< X-Cache-Lookup: MISS from unknown:3128
< Connection: keep-alive
<
グローバル IP が表示される
* Connection #0 to host 192.168.10.113 left intact
/*===============================================================*/
```
**192.168.10.113:3128/** ちゃんと, **inet** の IP アドレスになっていることが確認できました。プロクシへの接続も正常に行えているようです。
***