{"id":1326,"date":"2021-08-03T17:20:30","date_gmt":"2021-08-03T09:20:30","guid":{"rendered":"https:\/\/www.siediyer.cn\/?p=1326"},"modified":"2021-08-03T17:20:30","modified_gmt":"2021-08-03T09:20:30","slug":"docker%e5%ae%b9%e5%99%a8%e5%86%85%e9%83%a8%e7%ab%af%e5%8f%a3%e6%98%a0%e5%b0%84%e5%88%b0%e5%a4%96%e9%83%a8%e5%ae%bf%e4%b8%bb%e6%9c%ba%e7%ab%af%e5%8f%a3%e7%9a%84%e6%96%b9%e6%b3%95%e5%b0%8f%e7%bb%93","status":"publish","type":"post","link":"https:\/\/www.siediyer.cn\/?p=1326","title":{"rendered":"Docker\u5bb9\u5668\u5185\u90e8\u7aef\u53e3\u6620\u5c04\u5230\u5916\u90e8\u5bbf\u4e3b\u673a\u7aef\u53e3\u7684\u65b9\u6cd5\u5c0f\u7ed3"},"content":{"rendered":"<p>Docker\u5141\u8bb8\u901a\u8fc7\u5916\u90e8\u8bbf\u95ee\u5bb9\u5668\u6216\u8005\u5bb9\u5668\u4e4b\u95f4\u4e92\u8054\u7684\u65b9\u5f0f\u6765\u63d0\u4f9b\u7f51\u7edc\u670d\u52a1\u3002<br \/>\n\u5bb9\u5668\u542f\u52a8\u4e4b\u540e\uff0c\u5bb9\u5668\u4e2d\u53ef\u4ee5\u8fd0\u884c\u4e00\u4e9b\u7f51\u7edc\u5e94\u7528\uff0c\u901a\u8fc7-p\u6216-P\u53c2\u6570\u6765\u6307\u5b9a\u7aef\u53e3\u6620\u5c04\u3002<\/p>\n<p>\u6ce8\u610f\uff1a<br \/>\n\u5bbf\u4e3b\u673a\u7684\u4e00\u4e2a\u7aef\u53e3\u53ea\u80fd\u6620\u5c04\u5230\u5bb9\u5668\u5185\u90e8\u7684\u67d0\u4e00\u4e2a\u7aef\u53e3\u4e0a\uff0c\u6bd4\u5982\uff1a8080-&gt;80\u4e4b\u540e\uff0c\u5c31\u4e0d\u80fd8080-&gt;81<br \/>\n\u5bb9\u5668\u5185\u90e8\u7684\u67d0\u4e2a\u7aef\u53e3\u53ef\u4ee5\u88ab\u5bbf\u4e3b\u673a\u7684\u591a\u4e2a\u7aef\u53e3\u6620\u5c04,\u6bd4\u5982\uff1a8080-&gt;80\uff0c8090-&gt;80,8099-&gt;80<\/p>\n<p>1\uff09\u542f\u52a8\u5bb9\u5668\u65f6\uff0c\u9009\u62e9\u4e00\u4e2a\u7aef\u53e3\u6620\u5c04\u5230\u5bb9\u5668\u5185\u90e8\u5f00\u653e\u7aef\u53e3\u4e0a<br \/>\n-p \u5c0f\u5199p\u8868\u793adocker\u4f1a\u9009\u62e9\u4e00\u4e2a\u5177\u4f53\u7684\u5bbf\u4e3b\u673a\u7aef\u53e3\u6620\u5c04\u5230\u5bb9\u5668\u5185\u90e8\u5f00\u653e\u7684\u7f51\u7edc\u7aef\u53e3\u4e0a\u3002<br \/>\n-P \u5927\u5199P\u8868\u793adocker\u4f1a\u968f\u673a\u9009\u62e9\u4e00\u4e2a\u5bbf\u4e3b\u673a\u7aef\u53e3\u6620\u5c04\u5230\u5bb9\u5668\u5185\u90e8\u5f00\u653e\u7684\u7f51\u7edc\u7aef\u53e3\u4e0a\u3002<\/p>\n<pre class=\"lang:default decode:true \">\u6bd4\u5982\uff1a\r\n[root@docker-test ~]# docker run -ti -d --name my-nginx -p 8088:80 docker.io\/nginx\r\n2218c7d88ccc917fd0aa0ec24e6d81667eb588f491d3730deb09289dcf6b8125\r\n[root@docker-test ~]# docker run -ti -d --name my-nginx2 -P docker.io\/nginx\r\n589237ceec9d5d1de045a5395c0d4b519acf54e8c09afb07af49de1b06d71059\r\n[root@docker-test ~]# docker ps\r\nCONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                   NAMES\r\n589237ceec9d        docker.io\/nginx     \"nginx -g 'daemon ...\"   6 seconds ago        Up 5 seconds        0.0.0.0:32770-&gt;80\/tcp   my-nginx2\r\n2218c7d88ccc        docker.io\/nginx     \"nginx -g 'daemon ...\"   About a minute ago   Up About a minute   0.0.0.0:8088-&gt;80\/tcp    my-nginx\r\n \r\n\u7531\u4e0a\u9762\u53ef\u77e5\uff1a\r\n\u5bb9\u5668my-nginx\u542f\u52a8\u65f6\u4f7f\u7528\u4e86-p\uff0c\u9009\u62e9\u5bbf\u4e3b\u673a\u5177\u4f53\u76848088\u7aef\u53e3\u6620\u5c04\u5230\u5bb9\u5668\u5185\u90e8\u768480\u7aef\u53e3\u4e0a\u4e86\uff0c\u8bbf\u95eehttp:\/\/localhost\/8088\u5373\u53ef\r\n\u5bb9\u5668my-nginx2\u542f\u52a8\u65f6\u4f7f\u7528\u4e86-P\uff0c\u9009\u62e9\u5bbf\u4e3b\u673a\u7684\u4e00\u4e2a\u968f\u673a\u7aef\u53e3\u6620\u5c04\u5230\u5bb9\u5668\u5185\u90e8\u768480\u7aef\u53e3\u4e0a\u4e86\uff0c\u8fd9\u91cc\u968f\u673a\u7aef\u53e3\u662f32770\uff0c\u8bbf\u95eehttp:\/\/localhost\/32770\u5373\u53ef<\/pre>\n<p><strong>2\uff09\u542f\u52a8\u521b\u5efa\u65f6\uff0c\u7ed1\u5b9a\u5916\u90e8\u7684ip\u548c\u7aef\u53e3\uff08\u5bbf\u4e3b\u673aip\u662f192.168.10.214\uff09<\/strong><\/p>\n<pre class=\"lang:default decode:true \">[root@docker-test ~]# docker run -ti -d --name my-nginx3 -p 127.0.0.1:8888:80 docker.io\/nginx \r\ndebca5ec7dbb770ca307b06309b0e24b81b6bf689cb11474ec1ba187f4d7802c\r\n[root@docker-test ~]# docker run -ti -d --name my-nginx4 -p 192.168.10.214:9999:80 docker.io\/nginx              \r\nba72a93196f7e55020105b90a51d2203f9cc4d09882e7848ff72f9c43d81852a\r\n[root@docker-test ~]# docker ps\r\nCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES\r\nba72a93196f7        docker.io\/nginx     \"nginx -g 'daemon ...\"   2 seconds ago       Up 1 second         192.168.10.214:9999-&gt;80\/tcp   my-nginx4\r\ndebca5ec7dbb        docker.io\/nginx     \"nginx -g 'daemon ...\"   3 minutes ago       Up 3 minutes        127.0.0.1:8888-&gt;80\/tcp        my-nginx3\r\n \r\n\u7531\u4e0a\u9762\u53ef\u77e5\uff1a\r\n\u5bb9\u5668my-nginx3\u7ed1\u5b9a\u7684\u5bbf\u4e3b\u673a\u5916\u90e8ip\u662f127.0.0.1\uff0c\u7aef\u53e3\u662f8888\uff0c\u5219\u8bbf\u95eehttp:\/\/127.0.0.1:8888\u6216http:\/\/localhost:8888\u90fd\u53ef\u4ee5\uff0c\u8bbf\u95eehttp:\/\/192.168.10.214:8888\u5c31\u4f1a\u62d2\u7edd\uff01\r\n\u5bb9\u5668my-nginx4\u7ed1\u5b9a\u7684\u5bbf\u4e3b\u673a\u5916\u90e8ip\u662f192.168.10.214\uff0c\u7aef\u53e3\u662f9999\uff0c\u5219\u8bbf\u95eehttp:\/\/192.168.10.214:9999\u5c31\u53ef\u4ee5\uff0c\u8bbf\u95eehttp:\/\/127.0.0.1:9999\u6216http:\/\/localhost:9999\u5c31\u4f1a\u62d2\u7edd\uff01<\/pre>\n<p><strong>3\uff09\u5bb9\u5668\u542f\u52a8\u65f6\u53ef\u4ee5\u6307\u5b9a\u901a\u4fe1\u534f\u8bae\uff0c\u6bd4\u5982tcp\u3001udp<\/strong><\/p>\n<pre class=\"lang:default decode:true \">[root@docker-test ~]# docker run -ti -d --name my-nginx5 -p 8099:80\/tcp docker.io\/nginx\r\nc08eb29e3c0a46386319b475cc95245ccfbf106ed80b1f75d104f8f05d0d0b3e\r\n[root@docker-test ~]# docker run -ti -d --name my-nginx6 -p 192.168.10.214:8077:80\/udp docker.io\/nginx\r\n992a48cbd3ef0e568b45c164c22a00389622c2b49e77f936bc0f980718590d5b\r\n[root@docker-test ~]# docker ps\r\nCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                 NAMES\r\n992a48cbd3ef        docker.io\/nginx     \"nginx -g 'daemon ...\"   3 seconds ago       Up 2 seconds        80\/tcp, 192.168.10.214:8077-&gt;80\/udp   my-nginx6\r\nc08eb29e3c0a        docker.io\/nginx     \"nginx -g 'daemon ...\"   53 seconds ago      Up 51 seconds       0.0.0.0:8099-&gt;80\/tcp                  my-nginx5<\/pre>\n<p><strong>4\uff09\u67e5\u770b\u5bb9\u5668\u7ed1\u5b9a\u548c\u6620\u5c04\u7684\u7aef\u53e3\u53caIp\u5730\u5740<\/strong><\/p>\n<pre class=\"lang:default decode:true \">[root@docker-test ~]# docker port my-nginx5\r\n80\/tcp -&gt; 0.0.0.0:8099\r\n[root@docker-test ~]# docker inspect my-nginx5|grep IPAddress\r\n            \"SecondaryIPAddresses\": null,\r\n            \"IPAddress\": \"172.17.0.6\",\r\n                    \"IPAddress\": \"172.17.0.6\",<\/pre>\n<p><strong>5\uff09\u5bb9\u5668\u542f\u52a8\u7ed1\u5b9a\u591aIP\u548c\u7aef\u53e3\uff08\u8ddf\u591a\u4e2a-p\uff09<\/strong><\/p>\n<pre class=\"lang:default decode:true \">[root@docker-test ~]# docker run -ti -d --name my-nginx8 -p 192.168.10.214:7777:80 -p 127.0.0.1:7788:80 docker.io\/nginx\r\n0e86be91026d1601b77b52c346c44a31512138cedc7f21451e996dd2e75d014d\r\n[root@docker-test ~]# docker ps\r\nCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                 NAMES\r\n0e86be91026d        docker.io\/nginx     \"nginx -g 'daemon ...\"   17 seconds ago      Up 15 seconds       127.0.0.1:7788-&gt;80\/tcp, 192.168.10.214:7777-&gt;80\/tcp   my-nginx8<\/pre>\n<p><strong>6\uff09\u5bb9\u5668\u9664\u4e86\u5728\u542f\u52a8\u65f6\u6dfb\u52a0\u7aef\u53e3\u6620\u5c04\u5173\u7cfb\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u5bbf\u4e3b\u673a\u7684iptables\u8fdb\u884cnat\u8f6c\u53d1\uff0c\u5c06\u5bbf\u4e3b\u673a\u7684\u7aef\u53e3\u6620\u5c04\u5230\u5bb9\u5668\u7684\u5185\u90e8\u7aef\u53e3\u4e0a\uff0c\u8fd9\u79cd\u65b9\u5f0f\u9002\u7528\u4e8e\u5bb9\u5668\u542f\u52a8\u65f6\u6ca1\u6709\u6307\u5b9a\u7aef\u53e3\u6620\u5c04\u7684\u60c5\u51b5\uff01<\/strong><\/p>\n<pre class=\"lang:default decode:true \">[root@docker-test ~]# docker run -ti -d --name my-nginx9 docker.io\/nginx\r\n990752e39d75b977cbff5a944247366662211ce43d16843a452a5697ddded12f\r\n[root@docker-test ~]# docker ps\r\nCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS            NAMES\r\n990752e39d75        docker.io\/nginx     \"nginx -g 'daemon ...\"   2 seconds ago       Up 1 second         80\/tcp           my-nginx9\r\n \r\n\u8fd9\u4e2a\u65f6\u5019\uff0c\u7531\u4e8e\u5bb9\u5668my-nginx9\u5728\u542f\u52a8\u65f6\u6ca1\u6709\u6307\u5b9a\u5176\u5185\u90e8\u768480\u7aef\u53e3\u6620\u5c04\u5230\u5bbf\u4e3b\u673a\u7684\u7aef\u53e3\u4e0a\uff0c\u6240\u4ee5\u9ed8\u8ba4\u662f\u6ca1\u6cd5\u8bbf\u95ee\u7684\uff01\r\n\u73b0\u5728\u901a\u8fc7\u5bbf\u4e3b\u673a\u7684iptables\u8fdb\u884cnet\u8f6c\u53d1\r\n \r\n\u9996\u5148\u83b7\u5f97\u5bb9\u5668\u7684ip\u5730\u5740\r\n[root@docker-test ~]# docker inspect my-nginx9|grep IPAddress\r\n            \"SecondaryIPAddresses\": null,\r\n            \"IPAddress\": \"172.17.0.9\",\r\n                    \"IPAddress\": \"172.17.0.9\",\r\n \r\n[root@docker-test ~]# ping 172.17.0.9\r\nPING 172.17.0.9 (172.17.0.9) 56(84) bytes of data.\r\n64 bytes from 172.17.0.9: icmp_seq=1 ttl=64 time=0.105 ms\r\n64 bytes from 172.17.0.9: icmp_seq=2 ttl=64 time=0.061 ms\r\n.....\r\n \r\n[root@docker-test ~]# telnet 172.17.0.9 80\r\nTrying 172.17.0.9...\r\nConnected to 172.17.0.9.\r\nEscape character is '^]'\r\n \r\n \r\ncentos7\u4e0b\u90e8\u7f72iptables\u73af\u5883\u7eaa\u5f55\uff08\u5173\u95ed\u9ed8\u8ba4\u7684firewalle\uff09\r\n\u53c2\u8003\uff1ahttp:\/\/www.cnblogs.com\/kevingrace\/p\/5799210.html\r\n \r\n\u5c06\u5bb9\u5668\u768480\u7aef\u53e3\u6620\u5c04\u5230dockers\u5bbf\u4e3b\u673a\u76849998\u7aef\u53e3\r\n[root@docker-test ~]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 9998 -j DNAT --to-destination 172.17.0.9:80\r\n[root@docker-test ~]# iptables -t nat -A POSTROUTING -d 172.17.0.9\/32 -p tcp -m tcp --sport 80 -j SNAT --to-source 192.16.10.214\r\n[root@docker-test ~]# iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 9998 -j ACCEPT\r\n \r\n\u4fdd\u5b58\u4ee5\u4e0aiptables\u89c4\u5219\r\n[root@docker-test ~]# iptables-save &gt; \/etc\/sysconfig\/iptables\r\n \r\n\u67e5\u770b\/etc\/sysconfig\/iptables\u6587\u4ef6\uff0c\u6ce8\u610f\u4e0b\u9762\u4e24\u884c\u6709\u5173icmp-host-prohibited\u7684\u8bbe\u7f6e\u4e00\u5b9a\u8981\u6ce8\u91ca\u6389\uff01\u5426\u5219nat\u8f6c\u53d1\u4f1a\u5931\u8d25\uff01\r\n[root@docker-test ~]# cat \/etc\/sysconfig\/iptables\r\n# Generated by iptables-save v1.4.21 on Fri Aug 10 11:13:57 2018\r\n*nat\r\n:PREROUTING ACCEPT [32:1280]\r\n:INPUT ACCEPT [0:0]\r\n:OUTPUT ACCEPT [0:0]\r\n:POSTROUTING ACCEPT [0:0]\r\n-A PREROUTING -p tcp -m tcp --dport 9998 -j DNAT --to-destination 172.17.0.9:80\r\n-A POSTROUTING -d 172.17.0.9\/32 -p tcp -m tcp --sport 80 -j SNAT --to-source 192.16.10.214\r\nCOMMIT\r\n# Completed on Fri Aug 10 11:13:57 2018\r\n# Generated by iptables-save v1.4.21 on Fri Aug 10 11:13:57 2018\r\n*filter\r\n:INPUT ACCEPT [0:0]\r\n:FORWARD ACCEPT [0:0]\r\n:OUTPUT ACCEPT [50:5056]\r\n-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT\r\n-A INPUT -p icmp -j ACCEPT\r\n-A INPUT -i lo -j ACCEPT\r\n-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT\r\n-A INPUT -p tcp -m state --state NEW -m tcp --dport 9998 -j ACCEPT\r\n#-A INPUT -j REJECT --reject-with icmp-host-prohibited\r\n#-A FORWARD -j REJECT --reject-with icmp-host-prohibited\r\nCOMMIT\r\n# Completed on Fri Aug 10 11:13:57 2018\r\n \r\n\u6700\u540e\u91cd\u542fiptbales\u670d\u52a1\r\n[root@docker-test ~]# systemctl restart iptables\r\n \r\n\u67e5\u770biptables\u89c4\u5219\r\n[root@docker-test ~]# iptables -L\r\nChain INPUT (policy ACCEPT)\r\ntarget     prot opt source               destination        \r\nACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED\r\nACCEPT     icmp --  anywhere             anywhere           \r\nACCEPT     all  --  anywhere             anywhere           \r\nACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh\r\nACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:distinct32\r\n \r\nChain FORWARD (policy ACCEPT)\r\ntarget     prot opt source               destination        \r\n \r\nChain OUTPUT (policy ACCEPT)\r\ntarget     prot opt source               destination       \r\n \r\n[root@docker-test ~]# iptables -L -t nat\r\nChain PREROUTING (policy ACCEPT)\r\ntarget     prot opt source               destination        \r\nDNAT       tcp  --  anywhere             anywhere             tcp dpt:distinct32 to:172.17.0.9:80\r\n \r\nChain INPUT (policy ACCEPT)\r\ntarget     prot opt source               destination        \r\n \r\nChain OUTPUT (policy ACCEPT)\r\ntarget     prot opt source               destination        \r\n \r\nChain POSTROUTING (policy ACCEPT)\r\ntarget     prot opt source               destination        \r\nSNAT       tcp  --  anywhere             172.17.0.9           tcp spt:http to:192.16.10.214\r\n \r\n\u7136\u540e\u8bbf\u95eehttp:\/\/192.168.10.214:9998\/\uff0c\u5c31\u80fd\u8f6c\u53d1\u8bbf\u95ee\u5230my-nginx9\u5bb9\u5668\u768480\u7aef\u53e3\u4e86\uff01\uff01\uff01<\/pre>\n<p><strong>\u4e00\u6b21\u6027\u5220\u9664\u6240\u6709\u5bb9\u5668\uff0c\u5305\u62ec\u6b63\u5728\u8fd0\u884c\u7684\u5bb9\u5668<\/strong><\/p>\n<pre class=\"lang:default decode:true \">[root@docker-test ~]# docker rm -f `docker ps -a -q`\r\n990752e39d75\r\n0e86be91026d\r\nff2bc46a8ee4\r\nc08eb29e3c0a\r\nba72a93196f7\r\ndebca5ec7dbb\r\n589237ceec9d\r\n2218c7d88ccc\r\n[root@docker-test ~]# docker ps -a\r\nCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES<\/pre>\n<p>\u5982\u679c\u542f\u52a8docker \u5bb9\u5668\u65f6\uff0c\u6709\u5982\u4e0b\u62a5\u9519\uff1a<br \/>\n\/usr\/bin\/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint my-nginx (db5a0edac68d1ea7ccaa3a1e0db31ebdf278076ef4851ee4250221af6167f9ac): (iptables failed: iptables &#8211;wait -t nat -A DOCKER -p tcp -d 0\/0 &#8211;dport 8088 -j DNAT &#8211;to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain\/target\/match by that name.<\/p>\n<p><strong>\u89e3\u51b3\u529e\u6cd5<\/strong><\/p>\n<pre class=\"lang:default decode:true \">1\uff09\u4e0d\u9700\u8981\u5173\u95ed\u9632\u706b\u5899\r\n2\uff09\u91cd\u542fdocker\u670d\u52a1:systemctl restart docker\r\n3\uff09docker\u670d\u52a1\u91cd\u542f\u540e\uff0c\u6240\u6709\u5bb9\u5668\u90fd\u4f1a\u5173\u95ed\uff0c\u5e94\u7acb\u5373\u6279\u91cf\u542f\u52a8\u5168\u90e8\u5bb9\u5668:docker start `docker ps -a -q`\r\n   \u542f\u52a8\u7684\u5bb9\u5668\u4e5f\u4f1a\u5305\u62ec\u4e0a\u9762\u62a5\u9519\u7684\u5bb9\u5668\uff0c\u91cd\u542fdocker\u540e\uff0c\u8be5\u5bb9\u5668\u5c31\u80fd\u6b63\u5e38\u542f\u52a8\u548c\u4f7f\u7528\u4e86\uff01<\/pre>\n<p>============<strong>\u95ee\u9898:\u00a0 Docker \u7aef\u53e3\u6620\u5c04\u5230\u5bbf\u4e3b\u673a\u540e, \u5916\u90e8\u65e0\u6cd5\u8bbf\u95ee\u5bf9\u5e94\u5bbf\u4e3b\u673a\u7aef\u53e3<\/strong>==============<\/p>\n<pre class=\"lang:default decode:true \">\u521b\u5efadocker\u5bb9\u5668\u7684\u65f6\u5019,\u505a\u4e86\u7aef\u53e3\u6620\u5c04\u5230\u5bbf\u4e3b\u673a, \u9632\u706b\u5899\u5df2\u5173\u95ed, \u4f46\u662f\u5916\u90e8\u59cb\u7ec8\u65e0\u6cd5\u8bbf\u95ee\u5bbf\u4e3b\u673a\u7aef\u53e3?\r\n\u8fd9\u79cd\u60c5\u51b5\u57fa\u672c\u5c31\u662f\u56e0\u4e3a\u5bbf\u4e3b\u673a\u6ca1\u6709\u5f00\u542fip\u8f6c\u53d1\u529f\u80fd\uff0c\u4ece\u800c\u5bfc\u81f4\u5916\u90e8\u7f51\u7edc\u8bbf\u95ee\u5bbf\u4e3b\u673a\u5bf9\u5e94\u7aef\u53e3\u662f\u6ca1\u80fd\u8f6c\u53d1\u5230 Docker Container \u6240\u5bf9\u5e94\u7684\u7aef\u53e3\u4e0a\u3002\r\n \r\n\u89e3\u51b3\u529e\u6cd5:\r\nLinux \u53d1\u884c\u7248\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u662f\u4e0d\u5f00\u542f ip \u8f6c\u53d1\u529f\u80fd\u7684\u3002\u8fd9\u662f\u4e00\u4e2a\u597d\u7684\u505a\u6cd5\uff0c\u56e0\u4e3a\u5927\u591a\u6570\u4eba\u662f\u7528\u4e0d\u5230 ip \u8f6c\u53d1\u7684\uff0c\u4f46\u662f\u5982\u679c\u67b6\u8bbe\u4e00\u4e2a Linux \u8def\u7531\u6216\u8005VPN\u670d\u52a1\u6211\u4eec\u5c31\u9700\u8981\u5f00\u542f\u8be5\u670d\u52a1\u4e86\u3002\r\n \r\n\u5728 Linux \u4e2d\u5f00\u542f ip \u8f6c\u53d1\u7684\u5185\u6838\u53c2\u6570\u4e3a\uff1anet.ipv4.ip_forward\uff0c\u67e5\u770b\u662f\u5426\u5f00\u542f ip\u8f6c\u53d1\uff1a\r\n# cat \/proc\/sys\/net\/ipv4\/ip_forward           \/\/ 0\uff1a\u672a\u5f00\u542f\uff0c1\uff1a\u5df2\u5f00\u542f\r\n \r\n==============================\r\n\u6253\u5f00ip\u8f6c\u53d1\u529f\u80fd, \u4e0b\u9762\u4e24\u79cd\u65b9\u6cd5\u90fd\u662f\u4e34\u65f6\u6253\u5f00ip\u8f6c\u53d1\u529f\u80fd!\r\n# echo 1 &gt; \/proc\/sys\/net\/ipv4\/ip_forward\r\n# sysctl -w net.ipv4.ip_forward=1\r\n \r\n==============================\r\n\u6c38\u4e45\u751f\u6548\u7684ip\u8f6c\u53d1\r\n# vim \/etc\/sysctl.conf\r\nnet.ipv4.ip_forward = 1\r\n \r\n# sysctl -p \/etc\/sysctl.conf      \/\/ \u7acb\u5373\u751f\u6548\r\n \r\nLinux \u7cfb\u7edf\u4e2d\u4e5f\u53ef\u4ee5\u901a\u8fc7\u91cd\u542f\u7f51\u5361\u6765\u7acb\u5373\u751f\u6548 (\u4fee\u6539sysctl.conf\u6587\u4ef6\u540e\u7684\u751f\u6548)\r\n# service network restart                  \/\/CentOS 6\r\n# systemctl restart network              \/\/CentOS 7<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker\u5141\u8bb8\u901a\u8fc7\u5916\u90e8\u8bbf\u95ee\u5bb9\u5668\u6216\u8005\u5bb9\u5668\u4e4b\u95f4\u4e92\u8054\u7684\u65b9\u5f0f\u6765\u63d0\u4f9b\u7f51\u7edc\u670d\u52a1\u3002 \u5bb9\u5668\u542f\u52a8\u4e4b\u540e\uff0c\u5bb9\u5668\u4e2d\u53ef\u4ee5\u8fd0\u884c\u4e00\u4e9b\u7f51\u7edc\u5e94 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[79],"class_list":["post-1326","post","type-post","status-publish","format-standard","hentry","category-linux","tag-docker"],"_links":{"self":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/1326","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1326"}],"version-history":[{"count":1,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/1326\/revisions"}],"predecessor-version":[{"id":1327,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/1326\/revisions\/1327"}],"wp:attachment":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1326"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1326"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}