Linux Container (xenail) 运行 react.js 在尝试从主机连接到端口 8080 时显示无法连接消息
Linux Container (xenail) running react.js gives me Unable to Connect message when trying to connect to port 8080 from host
我无法连接到我的 Linux 容器的网页。我正在学习 Udemy 关于 Reactjs 和 Redux 的课程,并从 Github.
克隆了 ReduxSimpleStarter 存储库
我 运行 npm install 没有问题然后 运行 npm start
jason@courses:~/udemy/react1/ReduxSimpleStarter$ npm start
> redux-simple-starter@1.0.0 start /home/jason/udemy/react1/ReduxSimpleStarter
> node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js
http://localhost:8080/webpack-dev-server/
webpack result is served from /
content is served from ./
404s will fallback to /index.html
Hash: e1867813ff617d08f0b8
Version: webpack 1.15.0
Time: 10928ms
Asset Size Chunks Chunk Names
bundle.js 746 kB 0 [emitted] main
chunk {0} bundle.js (main) 706 kB [rendered]
[0] multi main 28 bytes {0} [built]
[1] ./src/index.js 854 bytes {0} [built]
[2] ./~/react/react.js 56 bytes {0} [built]
[3] ./~/react/lib/React.js 1.49 kB {0} [built]
...
...
[198] ./~/invariant/browser.js 1.52 kB {0} [built]
[199] ./src/components/app.js 2.21 kB {0} [built]
[200] ./src/reducers/index.js 337 bytes {0} [built]
webpack: Compiled successfully.
我导航到 lxc list
显示的 url 地址,例如 10.123.123.12
导航到 10.123.123.12:8080 给我 "Unable to Connect"
我最终确定了以下配置。
在我的容器中,我使用 iptables 将端口 80 的传入流量重新路由到端口 8080。
sysctl -w net.ipv4.conf.all.route_localnet=1
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080
然后通过将 disableHostCheck : true 添加到 devServer 哈希来更改 webpack.config.js 文件。
devServer {
...,
...,
disableHostCheck: true
}
小心最后一个指令,因为它可能存在安全风险,但是,这是我笔记本电脑上的一个 Linux 容器,所以我不太担心它。
我现在可以导航到 10.123.123.12(不是 10.123.123.12:8080)并查看我的应用程序。
我无法连接到我的 Linux 容器的网页。我正在学习 Udemy 关于 Reactjs 和 Redux 的课程,并从 Github.
克隆了 ReduxSimpleStarter 存储库我 运行 npm install 没有问题然后 运行 npm start
jason@courses:~/udemy/react1/ReduxSimpleStarter$ npm start
> redux-simple-starter@1.0.0 start /home/jason/udemy/react1/ReduxSimpleStarter
> node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js
http://localhost:8080/webpack-dev-server/
webpack result is served from /
content is served from ./
404s will fallback to /index.html
Hash: e1867813ff617d08f0b8
Version: webpack 1.15.0
Time: 10928ms
Asset Size Chunks Chunk Names
bundle.js 746 kB 0 [emitted] main
chunk {0} bundle.js (main) 706 kB [rendered]
[0] multi main 28 bytes {0} [built]
[1] ./src/index.js 854 bytes {0} [built]
[2] ./~/react/react.js 56 bytes {0} [built]
[3] ./~/react/lib/React.js 1.49 kB {0} [built]
...
...
[198] ./~/invariant/browser.js 1.52 kB {0} [built]
[199] ./src/components/app.js 2.21 kB {0} [built]
[200] ./src/reducers/index.js 337 bytes {0} [built]
webpack: Compiled successfully.
我导航到 lxc list
显示的 url 地址,例如 10.123.123.12
导航到 10.123.123.12:8080 给我 "Unable to Connect"
我最终确定了以下配置。
在我的容器中,我使用 iptables 将端口 80 的传入流量重新路由到端口 8080。
sysctl -w net.ipv4.conf.all.route_localnet=1
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080
然后通过将 disableHostCheck : true 添加到 devServer 哈希来更改 webpack.config.js 文件。
devServer {
...,
...,
disableHostCheck: true
}
小心最后一个指令,因为它可能存在安全风险,但是,这是我笔记本电脑上的一个 Linux 容器,所以我不太担心它。
我现在可以导航到 10.123.123.12(不是 10.123.123.12:8080)并查看我的应用程序。