{"id":479,"date":"2020-01-07T11:10:32","date_gmt":"2020-01-07T03:10:32","guid":{"rendered":"https:\/\/blog.espnlol.com\/?p=479"},"modified":"2022-04-20T18:27:03","modified_gmt":"2022-04-20T10:27:03","slug":"docker%e5%ae%89%e8%a3%85v2ray-ws-tls-cdn-%e7%a7%91%e5%ad%a6%e8%87%aa%e7%94%b1%e4%b8%8a%e7%bd%91","status":"publish","type":"post","link":"https:\/\/blog.espnlol.com\/?p=479","title":{"rendered":"Docker\u5b89\u88c5V2ray + ws + tls + cdn \u79d1\u5b66\u81ea\u7531\u4e0a\u7f51"},"content":{"rendered":"\n<p>\u524d\u8a00\uff1a\u7531\u4e8e\u8fd1\u671fGFW\u5927\u8086\u5c01\u6740ss\uff0c\u5bfc\u81f4\u5927\u91cf\u7684vps\u6302\u6389\uff0c\u5176\u4e2d\u6211\u7684\u4e5f\u4e2d\u62db\u4e86\uff0c\u6211\u4e5f\u5c31\u662f\u67e5\u67e5\u6280\u672f\u8d44\u6599\uff0c\u770b\u770byoutube\uff0c\u53ef\u60dc\u7684\u662f\u88ab\u5e72\u6389\u4e86\uff0c\u5e76\u4e14\u6211\u7684vps\u4e5f\u5c31\u6b64\u6302\u5230\uff0c\u8ba9\u6211\u5341\u5206\u82e6\u607c\uff0c\u6700\u8fd1\u53d1\u73b0V2ray ws + tls\u79d1\u5b66\u4e0a\u7f51\uff0c\u662f\u6a21\u62df\u7684https\u8bf7\u6c42\uff0c\u8fd9\u79cd\u8bf7\u6c42\u76ee\u524dGFW\u5e76\u4e0d\u80fd\u5f88\u597d\u7684\u8bc6\u522b\uff0c\u9042\u5f00\u542f\u7684 V2ray\u4e4b\u65c5<\/p>\n\n\n\n<p>\u7531\u4e8e\u5e0c\u671b\u4fdd\u6301vps\u7684\u5e72\u51c0\u5ea6\uff0c\u8fd9\u91cc\u9009\u62e9docker\u7684\u65b9\u5f0f\u5b89\u88c5\uff0cV2ray\u5728hub.docker.com\u6709\u5b98\u65b9\u7684\u955c\u50cf\uff0c\u66f4\u65b0\u4e5f\u6bd4\u8f83\u53ca\u65f6<\/p>\n\n\n\n<p>\u6211\u8fd9\u91cc\u6bd4\u8f83\u719f\u6089\u4f7f\u7528centos 7\uff0c\u6240\u4ee5\u9009\u62e9centos 7\u7684\u7cfb\u7edf<\/p>\n\n\n\n<p>1\uff0cdocker\u53cadocker compose\u5b89\u88c5<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">yum install docker-ce docker-compose -y\nsystemctl enable docker\nsystemctl start docker<\/pre>\n\n\n\n<p>2\uff0c\u62c9\u53bbV2ray\u955c\u50cf<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker pull v2ray\/official<\/pre>\n\n\n\n<p>3\uff0c\u521b\u5efa\u914d\u7f6e\u6587\u4ef6<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#\u521b\u5efa\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55\nmkdir -pv \/etc\/v2ray\n#\u521b\u5efa\u914d\u7f6e\u6587\u4ef6\uff0cid\u53ef\u4ee5\u901a\u8fc7\u5de5\u5177\u751f\u6210\uff0c\u5de5\u5177\u5730\u5740https:\/\/1024tools.com\/uuid\uff0c\u5ba2\u6237\u7aef\u8fd9\u4e2aid\u8981\u8ddf\u670d\u52a1\u7aef\u4e00\u6837\uff0c\u5343\u4e07\u4e0d\u80fd\u914d\u9519\nvi \/etc\/v2ray\/config.json  \n{\n  \"inbounds\": [\n    {\n      \"port\": 10000,\n      \"listen\":\"0.0.0.0\",\n      \"protocol\": \"vmess\",\n      \"settings\": {\n        \"clients\": [\n          {\n            \"id\": \"5abbc215-c243-46bc-99c7-103fa299aaaa\",\n            \"alterId\": 64\n          }\n        ]\n      },\n      \"streamSettings\": {\n        \"network\": \"ws\",\n        \"wsSettings\": {\n        \"path\": \"\/ray\"\n        }\n      }\n    }\n  ],\n  \"outbounds\": [\n    {\n      \"protocol\": \"freedom\",\n      \"settings\": {}\n    }\n  ]\n}<\/pre>\n\n\n\n<p>4\uff0c\u914d\u7f6edocker-compose\u5e76\u542f\u52a8<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#\u7f16\u5199docker-compose\u914d\u7f6e\nversion: '2'\nservices:\n  jenkins:\n    container_name: v2ray\n    image: v2ray\/official\n    restart: always\n    environment:\n      LANG: en_US.utf8\n      LC_ALL: en_US.utf8\n    ports:\n      - \"127.0.0.1:10000:10000\"\n    volumes:\n      - \"\/etc\/v2ray:\/etc\/v2ray\"\n      - \"\/etc\/localtime:\/etc\/localtime:ro\"\n\n#\u542f\u52a8V2ray\ndocker-compose up -d<\/pre>\n\n\n\n<p>\u5b8c\u6210\u4e0a\u8ff0\u64cd\u4f5c\u5c31\u8bf4\u660e\u5df2\u7ecf\u90e8\u7f72\u597d\u670d\u52a1\u7aef\u4e86<\/p>\n\n\n\n<p>5\uff0c\u914d\u7f6e\u57df\u540d\u89e3\u6790\uff0cCDN\uff0c\u53cd\u5411\u4ee3\u7406<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\u514d\u8d39CDN:cloudflare.com\n\u4f20\u9001\u95e8:<a href=\"https:\/\/dash.cloudflare.com\/\">https:\/\/dash.cloudflare.com\/<\/a>\n\u6309\u7167\u8981\u6c42\u6ce8\u518c\u5373\u53ef<\/pre>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247.png\" alt=\"\" class=\"wp-image-481\" width=\"595\" height=\"317\" srcset=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247.png 595w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-300x160.png 300w\" sizes=\"auto, (max-width: 595px) 100vw, 595px\" \/><figcaption>\u5f55\u5165\u8981\u52a0\u901f\u7684\u57df\u540d<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"334\" height=\"466\" src=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-1.png\" alt=\"\" class=\"wp-image-482\" srcset=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-1.png 334w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-1-215x300.png 215w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><figcaption>\u4f7f\u7528\u514d\u8d39\u7248<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"938\" height=\"597\" src=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-2.png\" alt=\"\" class=\"wp-image-483\" srcset=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-2.png 938w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-2-300x191.png 300w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-2-768x489.png 768w\" sizes=\"auto, (max-width: 938px) 100vw, 938px\" \/><figcaption>\u56e0\u4e3acloudflare\u8bbe\u7f6e\u4e3adns\u670d\u52a1\u5668\u6240\u4ee5\u65e0\u6cd5\u4f7f\u7528\uff0c\u5355\u51fb\u7ee7\u7eed\u8fdb\u5165\u4e0b\u4e00\u6b65<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"654\" height=\"633\" src=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-3.png\" alt=\"\" class=\"wp-image-484\" srcset=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-3.png 654w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-3-300x290.png 300w\" sizes=\"auto, (max-width: 654px) 100vw, 654px\" \/><figcaption>\u5728\u57df\u540d\u670d\u52a1\u5546\u90a3\u91cc\u5c06nameserver\u66f4\u6539\u4e3acloudflare\u7684nameserver<\/figcaption><\/figure>\n\n\n\n<p>\u8fdb\u5165\u963f\u91cc\u4e91\u57df\u540d\u7ba1\u7406\uff0c\u9009\u62e9\u57df\u540d\uff0c\u5e76\u70b9\u51fb\u7ba1\u7406\u8fdb\u5165\u57df\u540d\u57fa\u672c\u4fe1\u606f\u9875\u9762<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"757\" height=\"458\" src=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-9.png\" alt=\"\" class=\"wp-image-491\" srcset=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-9.png 757w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-9-300x182.png 300w\" sizes=\"auto, (max-width: 757px) 100vw, 757px\" \/><figcaption>\u70b9\u51fbDNS\u4fee\u6539<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"286\" src=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-5-1024x286.png\" alt=\"\" class=\"wp-image-486\" srcset=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-5-1024x286.png 1024w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-5-300x84.png 300w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-5-768x215.png 768w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-5.png 1892w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>\u4fee\u6539dns\u670d\u52a1\u5668\u4e3acloudflare\u7684nameserver<\/figcaption><\/figure>\n\n\n\n<p>\u7b49\u5927\u7ea610\u5206\u949f\u4e4b\u540e\u56de\u5230cloudflare\uff0c\u70b9\u51fb\u5b8c\u6210\uff0c\u68c0\u67e5nameservers<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"634\" src=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-6.png\" alt=\"\" class=\"wp-image-488\" srcset=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-6.png 660w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-6-300x288.png 300w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><figcaption>\u70b9\u51fb\u5b8c\u6210\u68c0\u67e5\uff0c\u6210\u529f\u540e\u5c31\u53ef\u4ee5\u8fdb\u884c\u57df\u540d\u89e3\u6790\u53ca\u52a0\u901f\u4e86<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"616\" src=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-7-1024x616.png\" alt=\"\" class=\"wp-image-489\" srcset=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-7-1024x616.png 1024w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-7-300x180.png 300w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-7-768x462.png 768w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-7.png 1053w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>\u505a\u4e00\u6761A\u8bb0\u5f55\u89e3\u6790\uff0c\u5e76\u5f00\u542fCDN\uff0c\u7b49\u5927\u7ea610\u5206\u949f\u540e\u5373\u53ef\u4f7f\u7528<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"728\" src=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-8-1024x728.png\" alt=\"\" class=\"wp-image-490\" srcset=\"https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-8-1024x728.png 1024w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-8-300x213.png 300w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-8-768x546.png 768w, https:\/\/blog.espnlol.com\/wp-content\/uploads\/2020\/01\/\u56fe\u7247-8.png 1033w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>\u8fd9\u91cc\u9700\u8981\u6ce8\u610f\u4e00\u4e0b\uff0c\u56e0\u4e3a\u6211\u4eec\u5f00\u542f\u4e86tls\uff0c\u6240\u4ee5cloudflare\u5230\u6211\u4eec\u7684\u670d\u52a1\u5668\u4e4b\u95f4\u662f\u9700\u8981\u8fdb\u884c\u5168\u94fe\u8defssl\uff0c\u5426\u5219\u4f1a\u5bfc\u81f4\u8bbf\u95ee\u5931\u8d25\u7684\u60c5\u51b5<\/figcaption><\/figure>\n\n\n\n<p>\u505a\u5b8c\u57df\u540d\u89e3\u6790+CDN\u540e\uff0c\u6211\u4eec\u5728ping\u6211\u4eec\u7684\u4e3b\u673a\u57df\u540d\uff0c\u53d1\u73b0\u5df2\u7ecf\u53ef\u4ee5\u6b63\u5e38\u901a\u4fe1\u4e86\uff0c\u8fd9\u5c31\u8bf4\u660eCDN\u4ee3\u7406\u751f\u6548\u4e86\uff0c\u4e0b\u9762\u5f00\u59cb\u914d\u7f6enginx<\/p>\n\n\n\n<p>\u5b89\u88c5\u5c31\u4e0d\u8bf4\u4e86\uff0c\u6bd4\u8f83\u7b80\u5355yum install nginx -y\u5373\u53ef<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#\u7f16\u8f91\u914d\u7f6e\u6587\u4ef6\nvi \/etc\/nginx\/conf.d\/v2ray.conf\nserver \n{\n  listen 80;\n  server_name mydomain.me;\n  #enforce https\n  return       301 https:\/\/gaea.smszhd.com$request_uri;\n}\n\nserver\n{\n        listen  443 ssl;\n        #listen  80;\n        server_name mydomain.me;\n\n        ssl on;\n        ssl_certificate ssl\/mydomain.me\/fullchain1.pem;\n        ssl_certificate_key ssl\/mydomain.me\/privkey1.pem;\n        ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;\n        ssl_ciphers           HIGH:!aNULL:!MD5;\n\n        location \/ray {\n        proxy_redirect off;\n        proxy_pass http:\/\/127.0.0.1:10000;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n        proxy_set_header Host $http_host;\n\n        # Show realip in v2ray access.log\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        }\n\n        access_log  logs\/gaea.log  main;\n}\n\n#\u542f\u52a8nginx\nsystemctl restart nginx<\/pre>\n\n\n\n<p>6\uff0c\u4e0b\u8f7d\u5e76\u5b89\u88c5\u5ba2\u6237\u7aef<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#windows\nV2rayN \uff1ahttps:\/\/github.com\/2dust\/v2rayN\/releases\n#mac\nbrew cask install v2rayu\n\n#\u5bfc\u5165\u5ba2\u6237\u7aef\u914d\u7f6e\n{\n  \"inbounds\": [\n    {\n      \"port\": 1080,\n      \"listen\": \"127.0.0.1\",\n      \"protocol\": \"socks\",\n      \"sniffing\": {\n        \"enabled\": true,\n        \"destOverride\": [\"http\", \"tls\"]\n      },\n      \"settings\": {\n        \"auth\": \"noauth\",\n        \"udp\": false\n      }\n    }\n  ],\n  \"outbounds\": [\n    {\n      \"protocol\": \"vmess\",\n      \"settings\": {\n        \"vnext\": [\n          {\n            \"address\": \"mydomain.me\",\n            \"port\": 443,\n            \"users\": [\n              {\n                \"id\": \"5abbc215-c243-46bc-99c7-103fa299aaaa\",\n                \"alterId\": 64\n              }\n            ]\n          }\n        ]\n      },\n      \"streamSettings\": {\n        \"network\": \"ws\",\n        \"security\": \"tls\",\n        \"wsSettings\": {\n          \"path\": \"\/ray\"\n        }\n      }\n    }\n  ]\n}<\/pre>\n\n\n\n<p>\u542f\u52a8\u5ba2\u6237\u7aef\u5bfc\u5165\u914d\u7f6e\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e86<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u8a00\uff1a\u7531\u4e8e\u8fd1\u671fGFW\u5927\u8086\u5c01\u6740ss\uff0c\u5bfc\u81f4\u5927\u91cf\u7684vps\u6302\u6389\uff0c\u5176\u4e2d\u6211\u7684\u4e5f\u4e2d\u62db\u4e86\uff0c\u6211\u4e5f\u5c31 &hellip; <a href=\"https:\/\/blog.espnlol.com\/?p=479\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,1],"tags":[],"class_list":["post-479","post","type-post","status-publish","format-standard","hentry","category-shadowsocks","category-1"],"_links":{"self":[{"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/posts\/479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=479"}],"version-history":[{"count":3,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/posts\/479\/revisions"}],"predecessor-version":[{"id":514,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/posts\/479\/revisions\/514"}],"wp:attachment":[{"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=479"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=479"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}