Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@webmedi

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

More than 1 year has passed since last update.
curl: (7) Failed to connect to x.x.x.x port xxxx: ホストへの経路がありません

表題の通りですが, 今回は, curl コマンドを実行した際に表題の様な現象に出くわしドツボにはまってしまったので, 次回を込めて書いていきたいと思います。


まず, curl コマンドを打ってみます。
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アドレスを確認してみます。
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 コマンドでプロクシを介するように設定されているファイルを見ます。
cmd
grep 192.168.1.110 /etc/*
/*===============================================================*/
/etc/profile:MY_PROXY_URL="http://192.168.1.110:3128/"
/*===============================================================*/

ごり押しで検索したら結果, どうやら /etc/profile に定義されているようですね。
では, このファイルを変更してみます。

cmd
vim /etc/profile
/*===============================================================*/
MY_PROXY_URL="http://192.168.1.110:3128/ ← 削除
MY_PROXY_URL="http://192.168.10.113:3128/ ← 削除した行に追加
/*===============================================================*/

inet に表示されていた IP アドレスに書き換えます。

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 の適用をします。
cmd
source /etc/profile
/*===============================================================*/
出力なし
/*===============================================================*/

これで, profile の内容が適用されます。

curl の動作確認
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 アドレスになっていることが確認できました。プロクシへの接続も正常に行えているようです。


4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
webmedi

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?