{"id":5335,"date":"2020-06-25T13:38:46","date_gmt":"2020-06-25T11:38:46","guid":{"rendered":"https:\/\/myoceane.fr\/?p=5335"},"modified":"2020-07-02T09:41:57","modified_gmt":"2020-07-02T07:41:57","slug":"tunneling-proxy","status":"publish","type":"post","link":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/","title":{"rendered":"[Website] Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>\u5de5\u4f5c\u4e0a\u9047\u5230\u8981\u5c07\u67d0\u500b localhost \u7684 port \u8f49\u5230 public \u7684\u5340\u57df\u7684\u9700\u6c42\uff0c\u67e5\u4e86\u5f88\u591a\u95dc\u65bc Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5\uff0c\u6574\u7406\u5728\u9019\u908a\u5404\u7a2e\u65b9\u6cd5\u7684\u512a\u7f3a\u9ede\uff0c\u4ee5\u4e0b\u689d\u5217\u5404\u7a2e\u65b9\u6cd5\u65b9\u6cd5\u4e00\uff1aTunneling, \u65b9\u6cd5\u4e8c\uff1aproxy \u4ee3\u7406\u4e3b\u6a5f, \u65b9\u6cd5\u4e09\uff1a\u4f7f\u7528\u5546\u7528\u6216\u662f\u958b\u6e90\u7684 local server exposure \u7684\u670d\u52d9, \u65b9\u6cd5\u56db\uff1a\u5229\u7528 Nginx \u9032\u884c Proxy \u7684\u670d\u52d9\u3002<\/p>\n<h4>\u65b9\u6cd5\u4e00\uff1aTunneling&nbsp;<\/h4>\n<p style=\"text-align: justify;\">\u4f7f\u7528 Tunneling \u7684\u65b9\u6cd5\u53ef\u4ee5\u57f7\u884c\u4ee5\u4e0b\u7684\u6307\u4ee4<a href=\"https:\/\/www.ssh.com\/ssh\/tunneling\/example\">\u53c3\u8003<\/a>\uff0c\u5229\u7528 tunneling \u7528\u6236\u53ef\u4ee5\u5728 client \u7aef\u5c07\u67d0\u500b\u7279\u5b9a\u7684 port \u63a5\u5230\u9060\u7aef\u7684\u4f3a\u670d\u5668\u4e0a\u9762\uff0c\u9019\u500b\u65b9\u6cd5\u5b89\u5168\u53ef\u9760\uff0c\u4f46\u662f\u7528\u6236\u8981\u81ea\u5df1\u4e0b\u9019\u500b ssh \u7684\u6307\u4ee4\uff0c\u5982\u679c\u8981\u65b9\u4fbf\u7528\u6236\u7684\u8a71\u6bd4\u8f03\u4e0d\u6703\u63a1\u7528\uff01<\/p>\n<pre class=\"lang:bash\">ssh -N -f -L localhost:8888:localhost:8889 remote_user@remote_host<\/pre>\n<p>\u5176\u4ed6\u53c3\u8003<a href=\"https:\/\/coderwall.com\/p\/ohk6cg\/remote-access-to-ipython-notebooks-via-ssh\">\u9023\u7d50<\/a>\u3002<\/p>\n<p><\/p>\n<h4>\u65b9\u6cd5\u4e8c\uff1aproxy \u4ee3\u7406\u4e3b\u6a5f<\/h4>\n<p>\u9019\u908a\u6211\u5011\u53c3\u8003\u4e86 Django \u7684\u4ee5\u4e0b\u5169\u500b\u5c08\u6848\uff0c\u4ed6\u5011\u7684\u76ee\u6a19\u90fd\u662f\u5229\u7528 Proxy \u53bb\u4ee3\u7406 localhost \u7684\u670d\u52d9\uff1a<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/pypi.org\/project\/djproxy\/\">https:\/\/pypi.org\/project\/djproxy\/<\/a><br><a href=\"https:\/\/github.com\/mjumbewu\/django-proxy\">https:\/\/github.com\/mjumbewu\/django-proxy<\/a><\/p>\n<p>\u4f46\u662f\u7f3a\u9ede\u662f\u9019\u5169\u500b\u5c08\u6848\u5be6\u4f5c\u7684 proxy \u4e26\u6c92\u6709\u8fa6\u6cd5\u53bb\u652f\u63f4\u6709\u5229\u7528 WebSocket \u7684\u670d\u52d9\uff0c\u6240\u4ee5\u5982\u679c localhost \u7aef\u904b\u884c\u7684\u670d\u52d9\u6709\u5229\u7528\u5230 WS \u7684\u8a71\u5c31\u6703\u7121\u6cd5\u5b8c\u5168\u5957\u7528\uff0c\u5229\u7528 Django \u8981\u80fd\u5920\u652f\u63f4 WebSocket \u7684\u670d\u52d9\u9700\u8981\u7528\u5230\u50cf\u662f <a href=\"https:\/\/channels.readthedocs.io\/en\/latest\/\">Django-Channels<\/a> \u7684\u5957\u4ef6\u3002<\/p>\n<p>\u9019\u908a\u4e3b\u8981\u662f\u9047\u5230 <span class=\"js-issue-title\">Missing &#8220;Upgrade&#8221; header <\/span>\u7684\u554f\u984c\uff0c\u727d\u626f\u5230 <a href=\"https:\/\/www.w3.org\/Protocols\/rfc2616\/rfc2616-sec13.html\">HTTP 1.1&nbsp;<\/a> \u6709\u6240\u8b02\u7684 hop-by-hop&nbsp; Header\uff0c\u4ee5\u4e0a\u5be6\u4f5c\u7684\u5169\u500b Proxy \u6703\u628a Hop-by-hop&nbsp; \u7684\u6a19\u982d\u6a94\u6ffe\u6389\uff0c\u4f7f\u5f97 WS \u7121\u6cd5\u5efa\u7acb\uff01<\/p>\n<pre class=\"lang:bash\">Traceback (most recent call last):\n  File \"\/usr\/lib64\/python3.6\/wsgiref\/handlers.py\", line 137, in run\n    self.result = application(self.environ, self.start_response)\n  File \"\/home\/***\/.local\/lib\/python3.6\/site-packages\/django\/contrib\/staticfiles\/handlers.py\", line 65, in __call__\n    return self.application(environ, start_response)\n  File \"\/home\/***\/.local\/lib\/python3.6\/site-packages\/django\/core\/handlers\/wsgi.py\", line 150, in __call__\n    start_response(status, response_headers)\n  File \"\/usr\/lib64\/python3.6\/wsgiref\/handlers.py\", line 236, in start_response\n    assert not is_hop_by_hop(name),\"Hop-by-hop headers not allowed\"\nAssertionError: Hop-by-hop headers not allowed\n[19\/Jun\/2020 23:10:03] \"GET \/api\/kernels\/5a5da918-f5d3-4f5a-b9db-b4bdba265dd2\/channels?session_id=7e74df521faa45f6ad7aae8b2fa05d80 HTTP\/1.1\" 500 59<\/pre>\n<h4>&nbsp;<\/h4>\n<h4>\u65b9\u6cd5\u4e09\uff1a\u4f7f\u7528\u5546\u7528\u6216\u662f\u958b\u6e90\u7684 local server exposure \u7684\u670d\u52d9<\/h4>\n<p>\u5c07 localhost \u7684\u670d\u52d9\u516c\u958b\u5230 public \u7b97\u662f\u883b\u6709\u9700\u6c42\u7684\uff0c\u56e0\u70ba\u9019\u6a23\u53ef\u4ee5\u5927\u5e45\u5ea6\u5730\u52a0\u5feb\u958b\u767c\u7684\u6d41\u7a0b\uff0c\u76f4\u63a5\u7d66\u5ba2\u6236 Demo \u4e4b\u985e\u7b49\u7b49\uff0c\u6240\u4ee5\u6709\u4e00\u4e9b\u958b\u6e90\u6216\u662f\u5546\u7528\u7684\u5957\u4ef6\u5df2\u7d93\u53ef\u4ee5\u652f\u63f4\u9019\u6a23\u7684\u529f\u80fd\uff0c\u7b46\u8005\u5617\u8a66\u4e86 <a href=\"https:\/\/ngrok.com\/\">ngrok<\/a> \u8207 <a href=\"https:\/\/localtunnel.github.io\/www\/\">localtunnel<\/a> \u9019\u5169\u500b\u670d\u52d9\uff0cngrok \u662f\u9700\u8981\u4ed8\u8cbb\u7684\u65b9\u6cd5\uff0c\u514d\u8cbb\u53ef\u4ee5\u4f7f\u7528\uff0c\u4f46\u662f\u6709\u9650\u767c\u5e03\u7684\u6578\u91cf\uff0c\u53e6\u5916 localtunnel \u5982\u4f55\u90e8\u7f72\u5728\u4ee5\u4e0b\u7684\u9023\u7d50\u88e1\u9762\u8b1b\u89e3\u5f97\u975e\u5e38\u6e05\u695a\uff01<\/p>\n\n\n<div class=\"wp-block-buttons aligncenter is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link\" href=\"https:\/\/medium.com\/@merik.chen\/%E6%9E%B6%E8%A8%AD%E8%87%AA%E5%B7%B1%E7%9A%84-localtunnel-server-a4acc017bf54\">\u90e8\u7f72 LocalTunnel \u670d\u52d9<\/a><\/div>\n<\/div>\n\n\n<p>\u90e8\u7f72 localtunnel \u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u6307\u4ee4\u555f\u52d5\uff1a<\/p>\n<pre class=\"lang:bash\">node -r esm bin\/server --secure true --domain test.domain --port 80<\/pre>\n<p>\u90e8\u7f72\u5b8c localtunnel \u4e4b\u5f8c\u53ea\u9700\u8981\u57f7\u884c\u6307\u4ee4\u5c31\u53ef\u4ee5\u628a\u81ea\u5df1\u7684 localhost \u900f\u904e URL \u767c\u4f48\u51fa\u53bb\uff01<\/p>\n<pre class=\"lang:bash\">lt --host http:\/\/test.domain --port [your-local-port] -s name<\/pre>\n<h4>\u00a0<\/h4>\n<h4>\u65b9\u6cd5\u56db\uff1a\u5229\u7528 Nginx \u9032\u884c Proxy \u7684\u670d\u52d9<\/h4>\n<p>\u9019\u908a\u63d0\u5230\u7684 Proxy \u8207\u65b9\u6cd5\u4e8c\u63d0\u5230\u7684\u4ee3\u7406\u4e3b\u6a5f\u529f\u80fd\u985e\u4f3c\uff0c\u4f46\u662f\u5229\u7528 Nginx \u53ef\u4ee5\u5c0d WebSocket \u7684\u670d\u52d9\u9032\u884c\u652f\u63f4\uff0c\u53ef\u4ee5\u53c3\u8003<a href=\"https:\/\/medium.com\/@andreimaksimov\/how-to-setup-jupyter-behind-nginx-proxy-8ece915eaf7d\">\u53e6\u4e00\u7bc7\u6587\u7ae0<\/a>\u6559\u4f60\u5982\u4f55\u628a Jupyter Notebook \u90e8\u7f72\u5728 Nginx \u670d\u52d9\u5668\u4e4b\u5f8c\u3002\u95dc\u65bc <a href=\"https:\/\/myoceane.fr\/index.php\/jupyter-notebook-server\/\">Jupyter Notebook \u53ef\u4ee5\u67e5\u770b<\/a>\uff01<\/p>\n<h5>\u5099\u8a3b\uff1a\u4e5f\u53ef\u4ee5\u5229\u7528 Apache2 \u9032\u884c Proxy \u7684\u670d\u52d9<\/h5>\n<p>\u53c3\u8003\u9019\u5169\u500b\uff1a<a href=\"https:\/\/www.linode.com\/docs\/applications\/big-data\/install-a-jupyter-notebook-server-on-a-linode-behind-an-apache-reverse-proxy\/#configure-apache-reverse-proxy\">\u7db2\u9801\u4e00<\/a>\uff0c<a href=\"https:\/\/jupyterhub.readthedocs.io\/en\/stable\/reference\/config-proxy.html\"><span style=\"font-family: var(--text-font); font-size: 1.0625rem;\">\u7db2\u9801\u4e8c<\/span><\/a> \u9700\u8981\u5148\u5b89\u88dd Apache \u7684\u67d0\u4e9b\u7279\u5b9a\u7684 module\uff1a<\/p>\n<pre class=\"lang:bash\">proxy proxy_http proxy_https proxy_wstunnel ssl headers rewrite<\/pre>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5de5\u4f5c\u4e0a\u9047\u5230\u8981\u5c07\u67d0\u500b localhost \u7684 port \u8f49\u5230 public \u7684\u5340\u57df\u7684\u9700\u6c42\uff0c\u67e5\u4e86\u5f88\u591a\u95dc\u65bc Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5\uff0c\u6574\u7406\u5728\u9019\u908a\u5404\u7a2e\u65b9\u6cd5\u7684\u512a\u7f3a\u9ede\uff0c\u4ee5\u4e0b\u689d\u5217\u5404\u7a2e\u65b9\u6cd5\u65b9\u6cd5\u4e00\uff1aTunneling, \u65b9\u6cd5\u4e8c\uff1aproxy \u4ee3\u7406\u4e3b\u6a5f, \u65b9\u6cd5\u4e09\uff1a\u4f7f\u7528\u5546\u7528\u6216\u662f\u958b\u6e90\u7684 local server exposure \u7684\u670d\u52d9, \u65b9\u6cd5\u56db\uff1a\u5229\u7528 Nginx \u9032\u884c Proxy \u7684\u670d\u52d9\u3002<\/p>\n","protected":false},"author":1,"featured_media":5589,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,176,8],"tags":[18,685,686,683,684,682],"class_list":["post-5335","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-it-technology","category-python","category-website","tag-django","tag-nginx","tag-ngrok","tag-proxy","tag-ssh","tag-tunneling"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Website] Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5 - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane<\/title>\n<meta name=\"description\" content=\"\u5de5\u4f5c\u4e0a\u9047\u5230\u8981\u5c07\u67d0\u500b localhost \u7684 port \u8f49\u5230 public \u7684\u5340\u57df\u7684\u9700\u6c42\uff0c\u67e5\u4e86\u5f88\u591a\u95dc\u65bc Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5\uff0c\u6574\u7406\u5728\u9019\u908a\u5404\u7a2e\u65b9\u6cd5\u7684\u512a\u7f3a\u9ede\uff0c\u4ee5\u4e0b\u689d\u5217\u5404\u7a2e\u65b9\u6cd5\u65b9\u6cd5\u4e00\uff1aTunneling, \u65b9\u6cd5\u4e8c\uff1aproxy \u4ee3\u7406\u4e3b\u6a5f, \u65b9\u6cd5\u4e09\uff1a\u4f7f\u7528\u5546\u7528\u6216\u662f\u958b\u6e90\u7684 local server exposure \u7684\u670d\u52d9, \u65b9\u6cd5\u56db\uff1a\u5229\u7528 Nginx \u9032\u884c Proxy \u7684\u670d\u52d9\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Website] Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5 - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\" \/>\n<meta property=\"og:description\" content=\"\u5de5\u4f5c\u4e0a\u9047\u5230\u8981\u5c07\u67d0\u500b localhost \u7684 port \u8f49\u5230 public \u7684\u5340\u57df\u7684\u9700\u6c42\uff0c\u67e5\u4e86\u5f88\u591a\u95dc\u65bc Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5\uff0c\u6574\u7406\u5728\u9019\u908a\u5404\u7a2e\u65b9\u6cd5\u7684\u512a\u7f3a\u9ede\uff0c\u4ee5\u4e0b\u689d\u5217\u5404\u7a2e\u65b9\u6cd5\u65b9\u6cd5\u4e00\uff1aTunneling, \u65b9\u6cd5\u4e8c\uff1aproxy \u4ee3\u7406\u4e3b\u6a5f, \u65b9\u6cd5\u4e09\uff1a\u4f7f\u7528\u5546\u7528\u6216\u662f\u958b\u6e90\u7684 local server exposure \u7684\u670d\u52d9, \u65b9\u6cd5\u56db\uff1a\u5229\u7528 Nginx \u9032\u884c Proxy \u7684\u670d\u52d9\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/\" \/>\n<meta property=\"og:site_name\" content=\"\u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-25T11:38:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-02T07:41:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2020\/06\/tunneling.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"405\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"\u6ab8\u6aac\u7238\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6ab8\u6aac\u7238\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/\"},\"author\":{\"name\":\"\u6ab8\u6aac\u7238\",\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"headline\":\"[Website] Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5\",\"datePublished\":\"2020-06-25T11:38:46+00:00\",\"dateModified\":\"2020-07-02T07:41:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/\"},\"wordCount\":85,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"image\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2020\/06\/tunneling.jpg\",\"keywords\":[\"Django\",\"Nginx\",\"Ngrok\",\"Proxy\",\"SSH\",\"Tunneling\"],\"articleSection\":[\"IT Technology\",\"Python\",\"Website\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/\",\"url\":\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/\",\"name\":\"[Website] Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5 - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\",\"isPartOf\":{\"@id\":\"https:\/\/myoceane.fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2020\/06\/tunneling.jpg\",\"datePublished\":\"2020-06-25T11:38:46+00:00\",\"dateModified\":\"2020-07-02T07:41:57+00:00\",\"description\":\"\u5de5\u4f5c\u4e0a\u9047\u5230\u8981\u5c07\u67d0\u500b localhost \u7684 port \u8f49\u5230 public \u7684\u5340\u57df\u7684\u9700\u6c42\uff0c\u67e5\u4e86\u5f88\u591a\u95dc\u65bc Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5\uff0c\u6574\u7406\u5728\u9019\u908a\u5404\u7a2e\u65b9\u6cd5\u7684\u512a\u7f3a\u9ede\uff0c\u4ee5\u4e0b\u689d\u5217\u5404\u7a2e\u65b9\u6cd5\u65b9\u6cd5\u4e00\uff1aTunneling, \u65b9\u6cd5\u4e8c\uff1aproxy \u4ee3\u7406\u4e3b\u6a5f, \u65b9\u6cd5\u4e09\uff1a\u4f7f\u7528\u5546\u7528\u6216\u662f\u958b\u6e90\u7684 local server exposure \u7684\u670d\u52d9, \u65b9\u6cd5\u56db\uff1a\u5229\u7528 Nginx \u9032\u884c Proxy \u7684\u670d\u52d9\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#primaryimage\",\"url\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2020\/06\/tunneling.jpg\",\"contentUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2020\/06\/tunneling.jpg\",\"width\":1024,\"height\":405},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/myoceane.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Website] Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/myoceane.fr\/#website\",\"url\":\"https:\/\/myoceane.fr\/\",\"name\":\"M-Y-Oceane \u60f3\u65b9\u6d89\u6cd5\u3002\u91cf\u74f6\u5916\u7684\u5929\u7a7a\",\"description\":\"\u60f3\u65b9\u6d89\u6cd5, France, Taiwan, Health, Information Technology\",\"publisher\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/myoceane.fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\",\"name\":\"\u6ab8\u6aac\u7238\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g\",\"caption\":\"\u6ab8\u6aac\u7238\"},\"logo\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/myoceane.fr\/index.php\/author\/johnny5584767gmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Website] Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5 - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","description":"\u5de5\u4f5c\u4e0a\u9047\u5230\u8981\u5c07\u67d0\u500b localhost \u7684 port \u8f49\u5230 public \u7684\u5340\u57df\u7684\u9700\u6c42\uff0c\u67e5\u4e86\u5f88\u591a\u95dc\u65bc Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5\uff0c\u6574\u7406\u5728\u9019\u908a\u5404\u7a2e\u65b9\u6cd5\u7684\u512a\u7f3a\u9ede\uff0c\u4ee5\u4e0b\u689d\u5217\u5404\u7a2e\u65b9\u6cd5\u65b9\u6cd5\u4e00\uff1aTunneling, \u65b9\u6cd5\u4e8c\uff1aproxy \u4ee3\u7406\u4e3b\u6a5f, \u65b9\u6cd5\u4e09\uff1a\u4f7f\u7528\u5546\u7528\u6216\u662f\u958b\u6e90\u7684 local server exposure \u7684\u670d\u52d9, \u65b9\u6cd5\u56db\uff1a\u5229\u7528 Nginx \u9032\u884c Proxy \u7684\u670d\u52d9\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/","og_locale":"en_US","og_type":"article","og_title":"[Website] Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5 - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","og_description":"\u5de5\u4f5c\u4e0a\u9047\u5230\u8981\u5c07\u67d0\u500b localhost \u7684 port \u8f49\u5230 public \u7684\u5340\u57df\u7684\u9700\u6c42\uff0c\u67e5\u4e86\u5f88\u591a\u95dc\u65bc Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5\uff0c\u6574\u7406\u5728\u9019\u908a\u5404\u7a2e\u65b9\u6cd5\u7684\u512a\u7f3a\u9ede\uff0c\u4ee5\u4e0b\u689d\u5217\u5404\u7a2e\u65b9\u6cd5\u65b9\u6cd5\u4e00\uff1aTunneling, \u65b9\u6cd5\u4e8c\uff1aproxy \u4ee3\u7406\u4e3b\u6a5f, \u65b9\u6cd5\u4e09\uff1a\u4f7f\u7528\u5546\u7528\u6216\u662f\u958b\u6e90\u7684 local server exposure \u7684\u670d\u52d9, \u65b9\u6cd5\u56db\uff1a\u5229\u7528 Nginx \u9032\u884c Proxy \u7684\u670d\u52d9\u3002","og_url":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/","og_site_name":"\u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","article_published_time":"2020-06-25T11:38:46+00:00","article_modified_time":"2020-07-02T07:41:57+00:00","og_image":[{"width":1024,"height":405,"url":"https:\/\/myoceane.fr\/wp-content\/uploads\/2020\/06\/tunneling.jpg","type":"image\/jpeg"}],"author":"\u6ab8\u6aac\u7238","twitter_card":"summary_large_image","twitter_misc":{"Written by":"\u6ab8\u6aac\u7238","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#article","isPartOf":{"@id":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/"},"author":{"name":"\u6ab8\u6aac\u7238","@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"headline":"[Website] Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5","datePublished":"2020-06-25T11:38:46+00:00","dateModified":"2020-07-02T07:41:57+00:00","mainEntityOfPage":{"@id":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/"},"wordCount":85,"commentCount":0,"publisher":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"image":{"@id":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#primaryimage"},"thumbnailUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2020\/06\/tunneling.jpg","keywords":["Django","Nginx","Ngrok","Proxy","SSH","Tunneling"],"articleSection":["IT Technology","Python","Website"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/","url":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/","name":"[Website] Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5 - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","isPartOf":{"@id":"https:\/\/myoceane.fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#primaryimage"},"image":{"@id":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#primaryimage"},"thumbnailUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2020\/06\/tunneling.jpg","datePublished":"2020-06-25T11:38:46+00:00","dateModified":"2020-07-02T07:41:57+00:00","description":"\u5de5\u4f5c\u4e0a\u9047\u5230\u8981\u5c07\u67d0\u500b localhost \u7684 port \u8f49\u5230 public \u7684\u5340\u57df\u7684\u9700\u6c42\uff0c\u67e5\u4e86\u5f88\u591a\u95dc\u65bc Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5\uff0c\u6574\u7406\u5728\u9019\u908a\u5404\u7a2e\u65b9\u6cd5\u7684\u512a\u7f3a\u9ede\uff0c\u4ee5\u4e0b\u689d\u5217\u5404\u7a2e\u65b9\u6cd5\u65b9\u6cd5\u4e00\uff1aTunneling, \u65b9\u6cd5\u4e8c\uff1aproxy \u4ee3\u7406\u4e3b\u6a5f, \u65b9\u6cd5\u4e09\uff1a\u4f7f\u7528\u5546\u7528\u6216\u662f\u958b\u6e90\u7684 local server exposure \u7684\u670d\u52d9, \u65b9\u6cd5\u56db\uff1a\u5229\u7528 Nginx \u9032\u884c Proxy \u7684\u670d\u52d9\u3002","breadcrumb":{"@id":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#primaryimage","url":"https:\/\/myoceane.fr\/wp-content\/uploads\/2020\/06\/tunneling.jpg","contentUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2020\/06\/tunneling.jpg","width":1024,"height":405},{"@type":"BreadcrumbList","@id":"https:\/\/myoceane.fr\/index.php\/tunneling-proxy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/myoceane.fr\/"},{"@type":"ListItem","position":2,"name":"[Website] Tunneling\/Proxy \u5be6\u4f5c\u65b9\u6cd5"}]},{"@type":"WebSite","@id":"https:\/\/myoceane.fr\/#website","url":"https:\/\/myoceane.fr\/","name":"M-Y-Oceane \u60f3\u65b9\u6d89\u6cd5\u3002\u91cf\u74f6\u5916\u7684\u5929\u7a7a","description":"\u60f3\u65b9\u6d89\u6cd5, France, Taiwan, Health, Information Technology","publisher":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/myoceane.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b","name":"\u6ab8\u6aac\u7238","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/myoceane.fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g","caption":"\u6ab8\u6aac\u7238"},"logo":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/image\/"},"url":"https:\/\/myoceane.fr\/index.php\/author\/johnny5584767gmail-com\/"}]}},"amp_enabled":false,"_links":{"self":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/5335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/comments?post=5335"}],"version-history":[{"count":50,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/5335\/revisions"}],"predecessor-version":[{"id":5705,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/5335\/revisions\/5705"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/media\/5589"}],"wp:attachment":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/media?parent=5335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/categories?post=5335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/tags?post=5335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}