{"id":5688,"date":"2024-05-12T09:50:00","date_gmt":"2024-05-12T01:50:00","guid":{"rendered":"https:\/\/ixyzero.com\/blog\/?p=5688"},"modified":"2024-05-11T20:03:11","modified_gmt":"2024-05-11T12:03:11","slug":"linux%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e4%bb%a3%e7%90%86%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f%e7%9a%84%e8%ae%be%e7%bd%ae","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/5688.html","title":{"rendered":"Linux\u670d\u52a1\u5668\u4e0a\u4ee3\u7406\u73af\u5883\u53d8\u91cf\u7684\u8bbe\u7f6e"},"content":{"rendered":"\n<p>=Start=<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u7f18\u7531\uff1a<\/h4>\n\n\n\n<p>\u7b80\u5355\u6574\u7406\u4e00\u4e0b\u8fd1\u671f\u641c\u7d22\u6574\u7406\u5230\u7684\u5185\u5bb9\uff0c\u65b9\u4fbf\u540e\u9762\u6709\u9700\u8981\u7684\u65f6\u5019\u53c2\u8003\u3002\u53e6\u5916\u60f3\u8bf4\u7684\u662f\uff0c\u6709\u673a\u4f1a\u7684\u8bdd\u8fd8\u662f\u5efa\u8bae\u81ea\u5df1\u642d\u5efa\u73af\u5883\u5b9e\u9645\u6d4b\u8bd5\u9a8c\u8bc1\u4e00\u4e0b\uff0c\u542c\u8bf4\u5343\u904d\u4e0d\u5982\u5b9e\u6d4b\u4e00\u904d\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u6b63\u6587\uff1a<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">\u53c2\u8003\u89e3\u7b54\uff1a<\/h5>\n\n\n\n<p>\u592a\u957f\u4e0d\u770b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u624b\u52a8\u6279\u91cf\u8bbe\u7f6e\nexport http_proxy=http:\/\/10.10.16.6:3128 \\\n&amp;&amp; export https_proxy=http:\/\/10.10.16.6:3128 \\\n&amp;&amp; export HTTP_PROXY=http:\/\/10.10.16.6:3128 \\\n&amp;&amp; export HTTPS_PROXY=http:\/\/10.10.16.6:3128 \\\n&amp;&amp; export no_proxy=\"127.0.0.1,localhost,localaddress,localdomain.com,.corp.ixyzero.com,.test.ixyzero.com\" \\\n&amp;&amp; export NO_PROXY=\"127.0.0.1,localhost,localaddress,localdomain.com,.corp.ixyzero.com,.test.ixyzero.com\"\n\n# \u6dfb\u52a0\u522b\u540d\necho \"alias aproxy='http_proxy=http:\/\/10.10.16.6:3128 https_proxy=http:\/\/10.10.16.6:3128 HTTP_PROXY=http:\/\/10.10.16.6:3128 HTTPS_PROXY=http:\/\/10.10.16.6:3128'\" &gt;&gt; ~\/.bashrc\nsource ~\/.bashrc\naproxy\n\n# \u6ce8\u610f\u4e8b\u9879\uff1a\n# 1. \u547d\u4ee4\u524d\u9762\u6dfb\u52a0 sudo \u540e\u7684\u547d\u4ee4\u6267\u884c\u65f6\u7684\u73af\u5883\u53d8\u91cf\u548c\u5f53\u524d\u7528\u6237\u53ef\u80fd\u4e0d\u4e00\u6837\uff0c\u5efa\u8bae\u5148\u5207\u5230\u5bf9\u5e94\u7528\u6237\u4e4b\u540e\u518d\u6267\u884c export \u64cd\u4f5c\u4f7f\u73af\u5883\u53d8\u91cf\u751f\u6548<\/code><\/pre>\n\n\n\n<p>\u7b80\u8981\u603b\u7ed3\u5c31\u662f\uff0c\u5982\u679c\u5927\u5c0f\u5199\u53ea\u80fd\u9009\u4e00\u79cd\uff0c\u90a3\u5c31\u4f7f\u7528\u5c0f\u5199\u5f62\u5f0f\u3002\u56e0\u4e3a HTTP_PROXY \u5e76\u4e0d\u603b\u662f\u652f\u6301\u6216\u63a8\u8350\u4f7f\u7528\u3002\u8fd8\u6709\u5c31\u662f\u5ba2\u6237\u7aef\u5e94\u5982\u4f55\u5904\u7406\u8fd9\u4e9b\u53d8\u91cf\u8fd8\u6ca1\u6709\u660e\u786e\u6807\u51c6\uff0c\u4e5f\u5c31\u5bfc\u81f4\u5404 Web \u5ba2\u6237\u7aef\u652f\u6301\u8fd9\u4e9b\u53d8\u91cf\u7684\u65b9\u5f0f\u5404\u4e0d\u76f8\u540c\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>If you&#8217;ve used a Web proxy server before, you&#8217;re probably familiar with the environment variables http_proxy or HTTP_PROXY. You may be less familiar with no_proxy, which provides a way to exclude traffic destined to certain hosts from using the proxy. While HTTP is a well-defined standard, no standard exists for how clients should handle these variables. As a result, Web clients support these variables in subtly different ways. For one GitLab customer, these differences led to a weekend of troubleshooting that uncovered why certain services stopped communicating.<br>\u5982\u679c\u4f60\u4ee5\u524d\u4f7f\u7528\u8fc7\u7f51\u7edc\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u4f60\u53ef\u80fd\u5bf9\u73af\u5883\u53d8\u91cf http_proxy \u6216 HTTP_PROXY \u6bd4\u8f83\u719f\u6089\u3002\u4f60\u53ef\u80fd\u5bf9 no_proxy \u4e0d\u592a\u719f\u6089\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u79cd\u65b9\u6cd5\uff0c\u53ef\u4ee5\u8ba9\u67d0\u4e9b\u4e3b\u673a\u7684\u6d41\u91cf\u4e0d\u4f7f\u7528\u4ee3\u7406\u670d\u52a1\u5668\u3002\u867d\u7136 HTTP \u662f\u4e00\u4e2a\u5b9a\u4e49\u660e\u786e\u7684\u6807\u51c6\uff0c\u4f46\u5bf9\u4e8e\u5ba2\u6237\u7aef\u5e94\u5982\u4f55\u5904\u7406\u8fd9\u4e9b\u53d8\u91cf\u5374\u6ca1\u6709\u6807\u51c6\u3002\u56e0\u6b64\uff0cWeb \u5ba2\u6237\u7aef\u652f\u6301\u8fd9\u4e9b\u53d8\u91cf\u7684\u65b9\u5f0f\u5404\u4e0d\u76f8\u540c\u3002\u5bf9\u4e8e\u4e00\u4f4d GitLab \u5ba2\u6237\u6765\u8bf4\uff0c\u8fd9\u4e9b\u5dee\u5f02\u5bfc\u81f4\u4e86\u4e00\u4e2a\u5468\u672b\u7684\u6545\u969c\u6392\u9664\uff0c\u4ece\u800c\u63ed\u793a\u4e86\u67d0\u4e9b\u670d\u52a1\u505c\u6b62\u901a\u4fe1\u7684\u539f\u56e0\u3002<\/p>\n\n\n\n<p>It&#8217;s been over 25 years since the first Web proxy was released. While the basic mechanics of configuring a Web client via environment variables have not changed much, a number of subtleties have emerged across different implementations. We saw for one customer, erroneously defining conflicting no_proxy and NO_PROXY variables led to hours of troubleshooting due to the differences with which Ruby and Go parse these settings. We hope highlighting these differences will avoid future issues in your production stack, and we hope that Web client maintainers will standardize the behavior to avoid such issues in the first place.<br>\u81ea\u7b2c\u4e00\u4e2a\u7f51\u7edc\u4ee3\u7406\u53d1\u5e03\u4ee5\u6765\uff0c25 \u5e74\u8fc7\u53bb\u4e86\u3002\u867d\u7136\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u914d\u7f6e Web \u5ba2\u6237\u7aef\u7684\u57fa\u672c\u673a\u5236\u6ca1\u6709\u592a\u5927\u53d8\u5316\uff0c\u4f46\u5728\u4e0d\u540c\u7684\u5b9e\u73b0\u4e2d\u51fa\u73b0\u4e86\u8bb8\u591a\u5fae\u5999\u4e4b\u5904\u3002\u6211\u4eec\u770b\u5230\u4e00\u4f4d\u5ba2\u6237\u9519\u8bef\u5730\u5b9a\u4e49\u4e86\u76f8\u4e92\u51b2\u7a81\u7684 no_proxy \u548c NO_PROXY \u53d8\u91cf\uff0c\u7531\u4e8e Ruby \u548c Go \u5728\u89e3\u6790\u8fd9\u4e9b\u8bbe\u7f6e\u65f6\u5b58\u5728\u5dee\u5f02\uff0c\u5bfc\u81f4\u4e86\u6570\u5c0f\u65f6\u7684\u6545\u969c\u6392\u9664\u3002\u6211\u4eec\u5e0c\u671b\u901a\u8fc7\u5f3a\u8c03\u8fd9\u4e9b\u5dee\u5f02\u6765\u907f\u514d\u4eca\u540e\u5728\u751f\u4ea7\u5806\u6808\u4e2d\u51fa\u73b0\u95ee\u9898\uff0c\u6211\u4eec\u4e5f\u5e0c\u671b Web \u5ba2\u6237\u7aef\u7ef4\u62a4\u4eba\u5458\u80fd\u591f\u9996\u5148\u89c4\u8303\u884c\u4e3a\u4ee5\u907f\u514d\u6b64\u7c7b\u95ee\u9898\u3002<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>\u5b57\u6bb5<\/strong><\/td><td><strong>curl<\/strong><\/td><td><strong>wget<\/strong><\/td><td><strong>Ruby<\/strong><\/td><td><strong>Python<\/strong><\/td><td><strong>Go<\/strong><\/td><\/tr><tr><td>http_proxy<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><\/tr><tr><td>HTTP_PROXY<\/td><td>No<\/td><td>No<\/td><td>Yes (<a href=\"https:\/\/github.com\/ruby\/ruby\/blob\/0ed71b37fa9af134fdd5a7fd1cebd171eba83541\/lib\/uri\/generic.rb#L1519\">warning<\/a>)<\/td><td>Yes (if&nbsp;REQUEST_METHOD&nbsp;not in env)<\/td><td>Yes<\/td><\/tr><tr><td>https_proxy<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><\/tr><tr><td>HTTPS_PROXY<\/td><td>Yes<\/td><td>No<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><\/tr><tr><td>Case precedence<\/td><td>lowercase<\/td><td>lowercase only<\/td><td>lowercase<\/td><td>lowercase<\/td><td>Uppercase<\/td><\/tr><tr><td>Reference<\/td><td><a href=\"https:\/\/github.com\/curl\/curl\/blob\/30e7641d7d2eb46c0b67c0c495a0ea7e52333ee2\/lib\/url.c#L2250-L2266\">source<\/a><\/td><td><a href=\"https:\/\/github.com\/jay\/wget\/blob\/099d8ee3da3a6eea5635581ae517035165f400a5\/src\/retr.c#L1222-L1239\">source<\/a><\/td><td><a href=\"https:\/\/github.com\/ruby\/ruby\/blob\/0ed71b37fa9af134fdd5a7fd1cebd171eba83541\/lib\/uri\/generic.rb#L1474-L1543\">source<\/a><\/td><td><a href=\"https:\/\/github.com\/python\/cpython\/blob\/030a713183084594659aefd77b76fe30178e23c8\/Lib\/urllib\/request.py#L2488-L2517\">source<\/a><\/td><td><a href=\"https:\/\/github.com\/golang\/go\/blob\/682a1d2176b02337460aeede0ff9e49429525195\/src\/vendor\/golang.org\/x\/net\/http\/httpproxy\/proxy.go#L82-L97\">source<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>\u5b57\u6bb5<\/strong><\/td><td><strong>curl<\/strong><\/td><td><strong>wget<\/strong><\/td><td><strong>Ruby<\/strong><\/td><td><strong>Python<\/strong><\/td><td><strong>Go<\/strong><\/td><\/tr><tr><td>no_proxy<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><\/tr><tr><td>NO_PROXY<\/td><td>Yes<\/td><td>No<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><\/tr><tr><td>Case precedence<\/td><td>lowercase<\/td><td>lowercase only<\/td><td>lowercase<\/td><td>lowercase<\/td><td>Uppercase<\/td><\/tr><tr><td>Matches suffixes?<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><td>Yes<\/td><\/tr><tr><td>Strips leading&nbsp;.?<\/td><td>Yes<\/td><td>No<\/td><td>Yes<\/td><td>Yes<\/td><td>No<\/td><\/tr><tr><td>*&nbsp;matches all hosts?<\/td><td>Yes<\/td><td>No<\/td><td>No<\/td><td>Yes<\/td><td>Yes<\/td><\/tr><tr><td>Supports regexes?<\/td><td>No<\/td><td>No<\/td><td>No<\/td><td>No<\/td><td>No<\/td><\/tr><tr><td>Supports CIDR blocks?<\/td><td>No<\/td><td>No<\/td><td>Yes<\/td><td>No<\/td><td>Yes<\/td><\/tr><tr><td>Detects loopback IPs?<\/td><td>No<\/td><td>No<\/td><td>No<\/td><td>No<\/td><td>Yes<\/td><\/tr><tr><td>Reference<\/td><td><a href=\"https:\/\/github.com\/curl\/curl\/blob\/30e7641d7d2eb46c0b67c0c495a0ea7e52333ee2\/lib\/url.c#L2152-L2206\">source<\/a><\/td><td><a href=\"https:\/\/github.com\/jay\/wget\/blob\/099d8ee3da3a6eea5635581ae517035165f400a5\/src\/retr.c#L1266-L1274\">source<\/a><\/td><td><a href=\"https:\/\/github.com\/ruby\/ruby\/blob\/0ed71b37fa9af134fdd5a7fd1cebd171eba83541\/lib\/uri\/generic.rb#L1545-L1554\">source<\/a><\/td><td><a href=\"https:\/\/github.com\/python\/cpython\/blob\/030a713183084594659aefd77b76fe30178e23c8\/Lib\/urllib\/request.py#L2519-L2551\">source<\/a><\/td><td><a href=\"https:\/\/github.com\/golang\/go\/blob\/682a1d2176b02337460aeede0ff9e49429525195\/src\/vendor\/golang.org\/x\/net\/http\/httpproxy\/proxy.go#L170-L206\">source<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Today, most Web clients support connection to proxy servers via environment variables: \u5982\u4eca\uff0c\u5927\u591a\u6570Web\u5ba2\u6237\u7aef\u652f\u6301\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u8fde\u63a5\u5230\u4ee3\u7406\u670d\u52a1\u5668\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>http_proxy \/ HTTP_PROXY<\/li>\n\n\n\n<li>https_proxy \/ HTTPS_PROXY<\/li>\n\n\n\n<li>no_proxy \/ NO_PROXY<\/li>\n<\/ul>\n\n\n\n<p>The lowest common denominator \u6700\u5c0f\u516c\u5206\u6bcd<\/p>\n\n\n\n<p>I think we can all agree that one should never define inconsistent values with lowercase and uppercase proxy settings. However, if you ever have to manage a stack written in multiple languages, you might need to consider setting HTTP proxy configurations to the lowest common denominator: \u6211\u60f3\u5927\u5bb6\u90fd\u540c\u610f\uff0c\u7edd\u4e0d\u80fd\u7528\u5c0f\u5199\u548c\u5927\u5199\u7684\u4ee3\u7406\u8bbe\u7f6e\u5b9a\u4e49\u4e0d\u4e00\u81f4\u7684\u503c\u3002\u4e0d\u8fc7\uff0c\u5982\u679c\u60a8\u9700\u8981\u7ba1\u7406\u7528\u591a\u79cd\u8bed\u8a00\u7f16\u5199\u7684\u5806\u6808\uff0c\u60a8\u53ef\u80fd\u9700\u8981\u8003\u8651\u5c06 HTTP \u4ee3\u7406\u914d\u7f6e\u8bbe\u7f6e\u4e3a\u6700\u5c0f\u516c\u5206\u6bcd\uff1a<\/p>\n\n\n\n<p>http_proxy \u548c https_proxy<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use lowercase form. HTTP_PROXY is not always supported or recommended. \u4f7f\u7528\u5c0f\u5199\u5f62\u5f0f\u3002\u56e0\u4e3a HTTP_PROXY \u5e76\u4e0d\u603b\u662f\u652f\u6301\u6216\u63a8\u8350\u4f7f\u7528\u3002\n<ul class=\"wp-block-list\">\n<li>If you absolutely must use the uppercase form as well, be sure they share the same value. \u5982\u679c\u60a8\u5fc5\u987b\u4f7f\u7528\u5927\u5199\u5f62\u5f0f\uff0c\u8bf7\u786e\u4fdd\u5b83\u4eec\u5177\u6709\u76f8\u540c\u7684\u503c\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>no_proxy<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Use lowercase form. \u4f7f\u7528\u5c0f\u5199\u5f62\u5f0f\u3002<\/li>\n\n\n\n<li>Use comma-separated hostname:port values. \u4f7f\u7528\u9017\u53f7\u5206\u9694\u7684 hostname:port \u503c\u3002<\/li>\n\n\n\n<li>IP addresses are okay, but hostnames are never resolved. IP \u5730\u5740\u6ca1\u95ee\u9898\uff0c\u4f46\u4e3b\u673a\u540d\u5374\u6c38\u8fdc\u65e0\u6cd5\u89e3\u6790\u3002<\/li>\n\n\n\n<li>Suffixes are always matched (e.g. example.com will match test.example.com). \u540e\u7f00\u603b\u662f\u5339\u914d\u7684\uff08\u4f8b\u5982\uff0c example.com \u5c06\u5339\u914d test.example.com \uff09\u3002<\/li>\n\n\n\n<li>If top-level domains need to be matched, avoid using a leading dot (.). \u5982\u679c\u9700\u8981\u5339\u914d\u9876\u7ea7\u57df\uff0c\u8bf7\u907f\u514d\u4f7f\u7528\u524d\u5bfc\u70b9 (.)\u3002<\/li>\n\n\n\n<li>Avoid using CIDR matching since only Go and Ruby support that. \u907f\u514d\u4f7f\u7528 CIDR \u5339\u914d\uff0c\u56e0\u4e3a\u53ea\u6709 Go \u548c Ruby \u652f\u6301\u8be5\u529f\u80fd\u3002<\/li>\n<\/ol>\n<\/blockquote>\n\n\n\n<h5 class=\"wp-block-heading\">\u53c2\u8003\u94fe\u63a5\uff1a<\/h5>\n\n\n\n<p>How to use no_proxy on Linux machines &#8211; wildcards, leading dots<br><a href=\"https:\/\/stackoverflow.com\/questions\/62632642\/how-to-use-no-proxy-on-linux-machines-wildcards-leading-dots\">https:\/\/stackoverflow.com\/questions\/62632642\/how-to-use-no-proxy-on-linux-machines-wildcards-leading-dots<\/a><\/p>\n\n\n\n<p>Set a network range in the no_proxy environment variable<br><a href=\"https:\/\/unix.stackexchange.com\/questions\/23452\/set-a-network-range-in-the-no-proxy-environment-variable\">https:\/\/unix.stackexchange.com\/questions\/23452\/set-a-network-range-in-the-no-proxy-environment-variable<\/a><\/p>\n\n\n\n<p>8.1 Proxies<br><a href=\"https:\/\/www.gnu.org\/software\/wget\/manual\/html_node\/Proxies.html\">https:\/\/www.gnu.org\/software\/wget\/manual\/html_node\/Proxies.html<\/a><\/p>\n\n\n\n<p>Chapter 23. Working with HTTP Proxies<br><a href=\"https:\/\/access.redhat.com\/documentation\/zh-cn\/openshift_container_platform\/3.4\/html\/installation_and_configuration\/install-config-http-proxies\">https:\/\/access.redhat.com\/documentation\/zh-cn\/openshift_container_platform\/3.4\/html\/installation_and_configuration\/install-config-http-proxies<\/a><\/p>\n\n\n\n<p>Best way to specify domain and all sub-domains in NO_PROXY?<br><a href=\"https:\/\/superuser.com\/questions\/1300625\/best-way-to-specify-domain-and-all-sub-domains-in-no-proxy\">https:\/\/superuser.com\/questions\/1300625\/best-way-to-specify-domain-and-all-sub-domains-in-no-proxy<\/a><\/p>\n\n\n\n<p>We need to talk: Can we standardize NO_PROXY? \u6211\u4eec\u9700\u8981\u8c08\u8c08\uff1a\u6211\u4eec\u80fd\u5c06 NO_PROXY \u6807\u51c6\u5316\u5417\uff1f<br><a href=\"https:\/\/about.gitlab.com\/blog\/2021\/01\/27\/we-need-to-talk-no-proxy\/\">https:\/\/about.gitlab.com\/blog\/2021\/01\/27\/we-need-to-talk-no-proxy\/<\/a><\/p>\n\n\n\n<p>\u5728wget\u548ccurl\u4e2d\u300c\u4e0d\u300d\u4f7f\u7528\u4ee3\u7406<br><a href=\"https:\/\/ixyzero.com\/blog\/archives\/2823.html\">https:\/\/ixyzero.com\/blog\/archives\/2823.html<\/a><\/p>\n\n\n\n<p>\u5728wget\u548ccurl\u4e2d\u4f7f\u7528\u4ee3\u7406<br><a href=\"https:\/\/ixyzero.com\/blog\/archives\/2664.html\">https:\/\/ixyzero.com\/blog\/archives\/2664.html<\/a><\/p>\n\n\n\n<p>=END=<\/p>\n","protected":false},"excerpt":{"rendered":"<p>=Start= \u7f18\u7531\uff1a \u7b80\u5355\u6574\u7406\u4e00\u4e0b\u8fd1\u671f\u641c\u7d22\u6574\u7406\u5230\u7684\u5185\u5bb9\uff0c\u65b9\u4fbf\u540e\u9762\u6709\u9700\u8981\u7684\u65f6\u5019\u53c2\u8003\u3002\u53e6\u5916\u60f3\u8bf4\u7684\u662f\uff0c\u6709\u673a\u4f1a\u7684\u8bdd\u8fd8 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,11,12],"tags":[2269,2270,30,2268,2265,2271],"class_list":["post-5688","post","type-post","status-publish","format-standard","hentry","category-knowledgebase-2","category-linux","category-tools","tag-http_proxy","tag-https_proxy","tag-linux","tag-no_proxy","tag-2265","tag-2271"],"views":1326,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/5688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=5688"}],"version-history":[{"count":1,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/5688\/revisions"}],"predecessor-version":[{"id":5689,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/5688\/revisions\/5689"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=5688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=5688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=5688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}