94832


actix-web で起動したサーバーに同じローカルネットワーク内の別の端末からアクセスしたいのですが、curlすると以下のようになってしまいます。  
(同じ端末からはアクセスできます)

[code]

    curl http://192.168.0.9:8080
    curl: (7) Failed to connect to 192.168.0.9 port 8080: Connection refused
    
[/code]

main.rs 抜粋

[code]

    use std::fs;
    use actix_web::{ web, App, HttpResponse, HttpServer, Responder};
    use actix_files;
    use tera::{Tera, Context};
    use natord;
    
    // ...省略...
    
    #[actix_rt::main]
    async fn main() -> std::io::Result<()> {
        let tera = Tera::new("templates/**/*").unwrap();
    
        HttpServer::new(move || {
            App::new()
                .app_data(web::Data::new(tera.clone()))
                .route("/", web::get().to(index))
                .service(actix_files::Files::new("/js", "static/js").show_files_listing())
                .service(actix_files::Files::new("/css", "static/css").show_files_listing())
        })
        .bind(("127.0.0.1", 8080))?
        .bind(("127.0.1.1", 8080))?
        .bind(("<hostname>.local", 8080))?
        .run()
        .await
    }
    
[/code]

### 環境

  * Archlinux 6.3.1-arch2-1
  * rustc 1.69.0 (84c898d65 2023-04-16) (Arch Linux rust 1:1.69.0-3)
  * actix-http v3.3.1
  * actix-web v4.3.1

どう変更すればよいでしょうか？  
よろしくお願いします。


CC BY-SA 4.0
2023-05-12T05:12:52.980
94827
2023-05-13T05:05:29.863
29692
question
network rust
actix-web で起動したサーバーに別の端末からアクセスできない


コメントで回答していただいた方々のお陰で解決しました。

  * > 127.0.0.1 ではなく、 192.168.0.9 にbindする必要があるのではないでしょうか？ – eduidl

  * > 他者のIPアドレスにはbindできないので 0.0.0.0 かなと思います – κeen

ありがとうございます。

[code]

    use std::fs;
    use actix_web::{ web, App, HttpResponse, HttpServer, Responder};
    use actix_files;
    use tera::{Tera, Context};
    use natord;
    
    // ...省略...
    
    #[actix_rt::main]
    async fn main() -> std::io::Result<()> {
        let tera = Tera::new("templates/**/*").unwrap();
    
        HttpServer::new(move || {
            App::new()
                .app_data(web::Data::new(tera.clone()))
                .route("/", web::get().to(index))
                .service(actix_files::Files::new("/js", "static/js").show_files_listing())
                .service(actix_files::Files::new("/css", "static/css").show_files_listing())
        })
        .bind(("0.0.0.0", 8080))?
        .run()
        .await
    }
    
[/code]

#### 参考になりそうなURL

  * [127.0.0.1とlocalhostと0.0.0.0の違い - Qiita](https://qiita.com/1ain2/items/194a9372798eaef6c5ab)


CC BY-SA 4.0
2023-05-13T05:05:29.863
94832
2023-05-13T05:05:29.863
29692
94827
answer