{"id":64,"date":"2017-06-27T11:43:39","date_gmt":"2017-06-27T03:43:39","guid":{"rendered":"https:\/\/wp.yaanren.xin\/?p=64"},"modified":"2017-06-27T11:43:39","modified_gmt":"2017-06-27T03:43:39","slug":"ss-panel-ss-py-mu%e5%ae%89%e8%a3%85%e6%95%99%e7%a8%8b","status":"publish","type":"post","link":"https:\/\/wp.625300.xyz\/?p=64","title":{"rendered":"ss-panel + ss py mu\u5b89\u88c5\u6559\u7a0b"},"content":{"rendered":"<h1 class=\"post-card-title\">ss-panel + ss py mu\u5b89\u88c5\u6559\u7a0b<\/h1>\n<div class=\"post-meta\"><\/div>\n<div id=\"post-content\" class=\"post-content\">\n<hr \/>\n<p><a id=\"more\"><\/a>\u8bfb\u8005\u5efa\u8bae\uff1a\u5982\u679c\u4f7f\u7528\u56fd\u5916vps<a href=\"http:\/\/feiyang.li\/2017\/05\/03\/ss-panel\/index.html\">\u5efa\u8bae<\/a>\u4f1a\u5feb\u901f\u5f88\u591a\u3002\u56fd\u5185vps\u5efa\u8bae\u672c\u65b9\u6cd5\u3002<\/p>\n<h1 id=\"lnmp\u73af\u5883\u914d\u7f6e\">lnmp\u73af\u5883\u914d\u7f6e<\/h1>\n<p>\u8fd9\u91cc\u4f7f\u7528\u6700\u65b0\u7684<a href=\"https:\/\/lnmp.org\/install.html\" target=\"_blank\" rel=\"external noopener noreferrer\">lnmp1.4<\/a><\/p>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">wget -c http:\/\/soft.vpser.net\/lnmp\/lnmp1.4beta.tar.gz &amp;&amp; tar zxf lnmp1.4beta.tar.gz &amp;&amp; cd lnmp1.4 &amp;&amp; .\/install.sh lnmp<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p><img decoding=\"async\" src=\"http:\/\/cdn.mmmxcc.cn\/blog\/20170504\/204651581.png\" alt=\"\" \/><\/p>\n<h1 id=\"\u5b89\u88c5ss-panel\u524d\u7aef\">\u5b89\u88c5ss-panel\u524d\u7aef<\/h1>\n<h2 id=\"\u4e0b\u8f7d-ss-panel-\u6e90\u7801\">\u4e0b\u8f7d ss-panel \u6e90\u7801<\/h2>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">cd \/home\/wwwroot\/<\/div>\n<div class=\"line\">git clone https:\/\/github.com\/orvice\/ss-panel.git<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u5b89\u88c5\u597d\u4e4b\u540e\uff0c\u662f\u8fd9\u4e2a\u6837\u5b50\u7684\u3002<\/p>\n<figure class=\"image-bubble\">\n<div class=\"img-lightbox\">\n<div class=\"overlay\"><\/div>\n<p><img decoding=\"async\" title=\"\" src=\"http:\/\/cdn.mmmxcc.cn\/blog\/20170504\/205330510.png?imageView2\/0\/format\/webp\/interlace\/1\/q\/75|watermark\/2\/text\/ZmVpeWFuZy5saQ==\/font\/Y29taWMgc2FucyBtcw==\/fontsize\/500\/fill\/IzAzQTlGNA==\/dissolve\/35\/gravity\/SouthEast\/dx\/10\/dy\/10|imageslim\" alt=\"mark\" \/><\/div>\n<div class=\"image-caption\">mark<\/div>\n<\/figure>\n<h2 id=\"\u914d\u7f6e-ss-panel\">\u914d\u7f6e ss-panel<\/h2>\n<h3 id=\"env\u6587\u4ef6\u914d\u7f6e\">.env\u6587\u4ef6\u914d\u7f6e<\/h3>\n<p>\u5b89\u88c5\u4f9d\u8d56\u6587\u4ef6\uff0c\u5e76\u914d\u7f6e.env<\/p>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<div class=\"line\">4<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">cd \/home\/wwwroot\/ss-panel\/<\/div>\n<div class=\"line\">curl -sS https:\/\/install.phpcomposer.com\/installer | php<\/div>\n<div class=\"line\">chmod +x composer.phar<\/div>\n<div class=\"line\">php composer.phar install<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<ul>\n<li>\u5b89\u88c5\u4f9d\u8d56\u90a3\u4e00\u6b65\u65f6\u95f4\u4f1a\u4e45\u4e00\u4e9b\uff0c\u56e0\u4e3a\u4e00\u5171\u670975\u4e2a\u4f9d\u8d56\uff0c\u800c\u4e14\u5f88\u591a\u88ab\u5899\u4e86\uff08\u56e0\u6b64\u5982\u679c\u76f4\u63a5\u7528\u56fd\u5916vps\uff0c\u771f\u7684\u4f1a\u597d\u5f88\u591a\uff09\uff0c\u6362\u4e86\u56fd\u5185\u6e90\u4f1a<strong>\u7a0d\u5fae<\/strong>\u597d\u4e00\u4e9b\u3002<br \/>\n<figure class=\"image-bubble\">\n<div class=\"img-lightbox\">\n<div class=\"overlay\"><\/div>\n<p><img decoding=\"async\" title=\"\" src=\"http:\/\/cdn.mmmxcc.cn\/blog\/20170504\/215216082.png?imageView2\/0\/format\/webp\/interlace\/1\/q\/75|watermark\/2\/text\/ZmVpeWFuZy5saQ==\/font\/Y29taWMgc2FucyBtcw==\/fontsize\/500\/fill\/IzAzQTlGNA==\/dissolve\/35\/gravity\/SouthEast\/dx\/10\/dy\/10|imageslim\" alt=\"\u6f2b\u957f\u7684\u7b49\u5f85\" \/><\/div>\n<div class=\"image-caption\">\u6f2b\u957f\u7684\u7b49\u5f85<\/div>\n<\/figure>\n<\/li>\n<\/ul>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">chmod -R 777 storage<\/div>\n<div class=\"line\">cp .env.example .env<\/div>\n<div class=\"line\">vi .env<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<ul>\n<li>\u8fd9\u91cc\u4e3b\u8981\u662f\u4fee\u6539\u6570\u636e\u5e93\u7684\u5185\u5bb9\uff0c\u8fd8\u6709<strong>muKey<\/strong>\u3002<\/li>\n<\/ul>\n<h3 id=\"nginx\u914d\u7f6e\">nginx\u914d\u7f6e<\/h3>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<div class=\"line\">4<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">lnmp vhost add<\/div>\n<div class=\"line\"># \u5199\u5165\u7ad9\u70b9\u7f51\u5740<\/div>\n<div class=\"line\">\/home\/wwwroot\/ss-panel\/public<\/div>\n<div class=\"line\"># \u5141\u8bb8\u91cd\u5199\u89c4\u5219\uff0c\u5176\u4f59\u4e00\u5f8b\u662fn<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p><img decoding=\"async\" src=\"http:\/\/cdn.mmmxcc.cn\/blog\/20170504\/210029356.png\" alt=\"\" \/><\/p>\n<p>\u8fdb\u5165nginx\u914d\u7f6e\u6587\u4ef6\u518d\u4fee\u6539\u4e00\u4e0b\uff1a<\/p>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">cd \/usr\/local\/nginx\/conf\/vhost\/<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u5b8c\u6574\u914d\u7f6e\u6587\u4ef6\u5e94\u8be5\u662f\u8fd9\u4e2a\u6837\u5b50<\/p>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<div class=\"line\">4<\/div>\n<div class=\"line\">5<\/div>\n<div class=\"line\">6<\/div>\n<div class=\"line\">7<\/div>\n<div class=\"line\">8<\/div>\n<div class=\"line\">9<\/div>\n<div class=\"line\">10<\/div>\n<div class=\"line\">11<\/div>\n<div class=\"line\">12<\/div>\n<div class=\"line\">13<\/div>\n<div class=\"line\">14<\/div>\n<div class=\"line\">15<\/div>\n<div class=\"line\">16<\/div>\n<div class=\"line\">17<\/div>\n<div class=\"line\">18<\/div>\n<div class=\"line\">19<\/div>\n<div class=\"line\">20<\/div>\n<div class=\"line\">21<\/div>\n<div class=\"line\">22<\/div>\n<div class=\"line\">23<\/div>\n<div class=\"line\">24<\/div>\n<div class=\"line\">25<\/div>\n<div class=\"line\">26<\/div>\n<div class=\"line\">27<\/div>\n<div class=\"line\">28<\/div>\n<div class=\"line\">29<\/div>\n<div class=\"line\">30<\/div>\n<div class=\"line\">31<\/div>\n<div class=\"line\">32<\/div>\n<div class=\"line\">33<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">server {<\/div>\n<div class=\"line\">listen 80;<\/div>\n<div class=\"line\">#listen [::]:80;<\/div>\n<div class=\"line\">server_name ss.feiyang.li n;<\/div>\n<div class=\"line\">index index.html index.htm index.php default.html default.htm default.php;<\/div>\n<div class=\"line\">root \/home\/wwwroot\/ss.feiyang.li\/public;<\/div>\n<div class=\"line\"><\/div>\n<div class=\"line\">location \/ {<\/div>\n<div class=\"line\">try_files $uri $uri\/ \/index.php$is_args$args;<\/div>\n<div class=\"line\">}<\/div>\n<div class=\"line\"><\/div>\n<div class=\"line\">location ~ [^\/]\\.php(\/|$) {<\/div>\n<div class=\"line\"># comment try_files $uri =404; to enable pathinfo<\/div>\n<div class=\"line\">try_files $uri =404;<\/div>\n<div class=\"line\">fastcgi_pass unix:\/tmp\/php-cgi.sock;<\/div>\n<div class=\"line\">fastcgi_index index.php;<\/div>\n<div class=\"line\">include fastcgi.conf;<\/div>\n<div class=\"line\">#include pathinfo.conf;<\/div>\n<div class=\"line\">fastcgi_param PHP_ADMIN_VALUE &#8220;open_basedir = \/home\/wwwroot\/:\/temp\/:\/proc&#8221;;<\/div>\n<div class=\"line\">}<\/div>\n<div class=\"line\"><\/div>\n<div class=\"line\"><\/div>\n<div class=\"line\">location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$ {<\/div>\n<div class=\"line\">expires 30d;<\/div>\n<div class=\"line\">}<\/div>\n<div class=\"line\"><\/div>\n<div class=\"line\">location ~ .*\\.(js|css)?$<\/div>\n<div class=\"line\">{<\/div>\n<div class=\"line\">expires 12h;<\/div>\n<div class=\"line\">}<\/div>\n<div class=\"line\"><\/div>\n<div class=\"line\"><\/div>\n<div class=\"line\">}<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"\u65b0\u5efass\u6570\u636e\u5e93\">\u65b0\u5efass\u6570\u636e\u5e93<\/h3>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<div class=\"line\">4<\/div>\n<div class=\"line\">5<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">mysql -uroot -p<\/div>\n<div class=\"line\"># \u8f93\u5165\u81ea\u5df1\u7684\u5bc6\u7801<\/div>\n<div class=\"line\">create database ss;<\/div>\n<div class=\"line\">use ss;<\/div>\n<div class=\"line\">source \/home\/wwwroot\/ss-panel\/db.sql;<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<figure class=\"image-bubble\">\n<div class=\"img-lightbox\">\n<div class=\"overlay\"><\/div>\n<p><img decoding=\"async\" title=\"\" src=\"http:\/\/cdn.mmmxcc.cn\/blog\/20170504\/212157512.png?imageView2\/0\/format\/webp\/interlace\/1\/q\/75|watermark\/2\/text\/ZmVpeWFuZy5saQ==\/font\/Y29taWMgc2FucyBtcw==\/fontsize\/500\/fill\/IzAzQTlGNA==\/dissolve\/35\/gravity\/SouthEast\/dx\/10\/dy\/10|imageslim\" alt=\"\" \/><\/div>\n<div class=\"image-caption\"><\/div>\n<\/figure>\n<p>\u73b0\u5728\u8bbf\u95ee\u4f60\u7684\u7ad9\u70b9\uff0c\u5c31\u53ef\u4ee5\u770b\u5230 ss-panel \u5566\uff1a<\/p>\n<figure class=\"image-bubble\">\n<div class=\"img-lightbox\">\n<div class=\"overlay\"><\/div>\n<p><img decoding=\"async\" title=\"\" src=\"http:\/\/cdn.mmmxcc.cn\/blog\/20170505\/124252257.png?imageView2\/0\/format\/webp\/interlace\/1\/q\/75|watermark\/2\/text\/ZmVpeWFuZy5saQ==\/font\/Y29taWMgc2FucyBtcw==\/fontsize\/500\/fill\/IzAzQTlGNA==\/dissolve\/35\/gravity\/SouthEast\/dx\/10\/dy\/10|imageslim\" alt=\"\" \/><\/div>\n<div class=\"image-caption\"><\/div>\n<\/figure>\n<h2 id=\"\u6dfb\u52a0\u7ba1\u7406\u5458\u8d26\u6237\">\u6dfb\u52a0\u7ba1\u7406\u5458\u8d26\u6237<\/h2>\n<p>\u6587\u5b57\u6392\u5e8f\u4f1a\u8ba9\u5f3a\u8feb\u75c7\u5954\u6e83\u3002\u3002\u3002\u3002\u3002<br \/>\n<code>php xcat createAdmin<\/code><\/p>\n<h2 id=\"\u90ae\u7bb1\u8bbe\u7f6e\">\u90ae\u7bb1\u8bbe\u7f6e<\/h2>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<div class=\"line\">4<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">vi .env<\/div>\n<div class=\"line\">mailgun_key = &#8216;key-0****c09&#8217; \/\/\u4e0a\u9762\u7684KEY<\/div>\n<div class=\"line\">mailgun_domain = &#8216;https:\/\/api.mailgun.net\/v3\/feiyang.li&#8217; \/\/\u4f60\u7ecf\u8fc7\u9a8c\u8bc1\u8fc7\u7684\u57df\u540d<\/div>\n<div class=\"line\">mailgun_sender = &#8216;postmaster@****.net&#8217; \/\/postmaster@\u4f60\u7ecf\u8fc7\u9a8c\u8bc1\u8fc7\u7684\u57df\u540d<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h2 id=\"https\u8bc1\u4e66\">https\u8bc1\u4e66<\/h2>\n<p><code>lnmp ssl add<\/code><br \/>\n\/home\/wwwroot\/ss-panel\/1_ss.feiyang.li_bundle.crt<br \/>\n\/home\/wwwroot\/ss-panel\/2_ss.feiyang.li.key<br \/>\n\u83b7\u5f97\u7eff\u8272\u5c0f\u9501~<br \/>\n<img decoding=\"async\" src=\"http:\/\/cdn.mmmxcc.cn\/blog\/20170505\/124311675.png\" alt=\"\" \/><\/p>\n<h1 id=\"\u5b89\u88c5-SS-PY-MU-\u670d\u52a1\u7aef\">\u5b89\u88c5 SS PY MU \u670d\u52a1\u7aef<\/h1>\n<h2 id=\"\u5b89\u88c5libsodium\u652f\u6301chacha20\">\u5b89\u88c5libsodium\u652f\u6301chacha20<\/h2>\n<p>centos\uff1a<\/p>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<div class=\"line\">4<\/div>\n<div class=\"line\">5<\/div>\n<div class=\"line\">6<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">yum -y groupinstall &#8220;Development Tools&#8221;<\/div>\n<div class=\"line\">wget https:\/\/github.com\/jedisct1\/libsodium\/releases\/download\/1.0.11\/libsodium-1.0.11.tar.gz<\/div>\n<div class=\"line\">tar xf libsodium-1.0.11.tar.gz &amp;&amp; cd libsodium-1.0.11<\/div>\n<div class=\"line\">.\/configure &amp;&amp; make -j2 &amp;&amp; make install<\/div>\n<div class=\"line\">echo \/usr\/local\/lib &gt; \/etc\/ld.so.conf.d\/usr_local_lib.conf<\/div>\n<div class=\"line\">ldconfig<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>ubuntu\/debian\uff1a<\/p>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<div class=\"line\">4<\/div>\n<div class=\"line\">5<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">apt-get install build-essential<\/div>\n<div class=\"line\">wget https:\/\/github.com\/jedisct1\/libsodium\/releases\/download\/1.0.11\/libsodium-1.0.11.tar.gz<\/div>\n<div class=\"line\">tar xf libsodium-1.0.11.tar.gz &amp;&amp; cd libsodium-1.0.11<\/div>\n<div class=\"line\">.\/configure &amp;&amp; make -j2 &amp;&amp; make install<\/div>\n<div class=\"line\">ldconfig<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h2 id=\"\u5c06\u4ee3\u7801-clone-\u5230\u672c\u5730\uff1a\">\u5c06\u4ee3\u7801 clone \u5230\u672c\u5730\uff1a<\/h2>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">cd ~<\/div>\n<div class=\"line\">git clone https:\/\/github.com\/fsgmhoward\/shadowsocks-py-mu.git<\/div>\n<div class=\"line\">cd ~\/shadowsocks-py-mu\/shadowsocks\/<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u5176\u4e2d\u7684 shadowsocks \u5b50\u76ee\u5f55\u624d\u662f\u6211\u4eec\u9700\u8981\u7684\uff0c\u5916\u9762\u7684\u662f setup.py \u7684\u76f8\u5173\u6587\u4ef6\u3002<\/p>\n<h2 id=\"\u914d\u7f6e-shadowsocks-manyuser\">\u914d\u7f6e shadowsocks-manyuser<\/h2>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">cp config_example.py config.py<\/div>\n<div class=\"line\">vi config.py<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u4fee\u6539\u5176\u4e2d\u7b2c 15 \u884c\u548c\u7b2c 29~31 \u884c\u7684\u5185\u5bb9\uff1a<\/p>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<div class=\"line\">4<\/div>\n<div class=\"line\">5<\/div>\n<div class=\"line\">6<\/div>\n<div class=\"line\">7<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\"># \u542f\u7528 MultiUser API<\/div>\n<div class=\"line\">API_ENABLED = True<\/div>\n<div class=\"line\"><\/div>\n<div class=\"line\"># \u5c31\u662f\u5728\u4f60\u7684\u7ad9\u70b9\u5730\u5740\u540e\u9762\u52a0\u4e2a \/mu<\/div>\n<div class=\"line\">API_URL = &#8216;http:\/\/ss.feiyang.li\/mu&#8217;<\/div>\n<div class=\"line\"># \u8fd8\u8bb0\u5f97\u4e0a\u9762\u5728 .env \u4e2d\u586b\u5199\u7684 muKey \u5417\uff1f\u628a\u5b83\u586b\u5728\u8fd9\u91cc<\/div>\n<div class=\"line\">API_PASS = &#8216;api_key_just_for_test&#8217;<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u7531\u4e8e\u6211\u4eec\u9009\u62e9\u4f7f\u7528 Mu API \u6765\u4e0e\u524d\u7aef\u901a\u4fe1\uff0c\u6240\u4ee5\u6211\u4eec\u4e0d\u9700\u8981\u4fee\u6539 config.py \u4e2d\u4efb\u4f55\u5173\u4e8e\u6570\u636e\u5e93\u7684\u914d\u7f6e\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/cdn.mmmxcc.cn\/blog\/20170505\/134246486.png\" alt=\"\" \/><\/p>\n<p>\u597d\u4e86\uff0c\u73b0\u5728\u53ef\u4ee5\u8bd5\u7740\u8fd0\u884c\u4e00\u4e0b<\/p>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">python servers.py<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\uff08\u6ce8\u610f\uff0c\u662f <strong>servers.py<\/strong> \u800c\u4e0d\u662f server.py\uff09\u3002\u5982\u679c\u6ca1\u9519\u7684\u8bdd\uff0c\u5e94\u8be5\u53ef\u4ee5\u770b\u5230\u8fd9\u6837\u7684\u8f93\u51fa\uff1a<\/p>\n<h2 id=\"\u914d\u7f6e-ss-manyuser-\u5b88\u62a4\u8fdb\u7a0b\">\u914d\u7f6e ss-manyuser \u5b88\u62a4\u8fdb\u7a0b<\/h2>\n<ul>\n<li>\u5b89\u88c5 supervisor \uff08\u7528\u7684\u662f\u4e0a\u9762\u5b89\u88c5\u8fc7\u7684 pip\uff09\uff1a<br \/>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">yum install python-setuptools<\/div>\n<div class=\"line\">easy_install supervisor<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<\/li>\n<li>\u521b\u5efa supervisor \u914d\u7f6e\u6587\u4ef6<br \/>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">echo_supervisord_conf &gt; \/etc\/supervisord.conf<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<\/li>\n<\/ul>\n<ul>\n<li>\u8fd0\u884c supervisor \u670d\u52a1<br \/>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">supervisord<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<\/li>\n<li>\u914d\u7f6e supervisor \u4ee5\u76d1\u63a7 ss-manyuser \u8fd0\u884c<br \/>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">vim \/etc\/supervisord.conf<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<\/li>\n<li>\u5728\u6587\u4ef6\u5c3e\u90e8\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\u5e76\u914c\u60c5\u4fee\u6539\uff1a<br \/>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<div class=\"line\">4<\/div>\n<div class=\"line\">5<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">[program:ss-manyuser]<\/div>\n<div class=\"line\">command = python \/root\/shadowsocks-py-mu\/shadowsocks\/servers.py<\/div>\n<div class=\"line\">user = root<\/div>\n<div class=\"line\">autostart = true<\/div>\n<div class=\"line\">autorestart = true<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<\/li>\n<\/ul>\n<p>\u5176\u4e2d command \u91cc\u7684\u76ee\u5f55\u8bf7\u81ea\u884c\u4fee\u6539\u4e3a\u4f60\u7684 servers.py\u6240\u5728\u7684\u7edd\u5bf9\u8def\u5f84\u3002<\/p>\n<ul>\n<li>\u91cd\u542f supervisor \u670d\u52a1\u4ee5\u52a0\u8f7d\u914d\u7f6e<br \/>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">killall -HUP supervisord<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<\/li>\n<li>\u67e5\u770b shadowsocks-manyuser \u662f\u5426\u5df2\u7ecf\u8fd0\u884c\uff1a<br \/>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">ps -ef | grep servers.py<\/div>\n<div class=\"line\">root 952 739 0 15:40 ? 00:00:00 python \/root\/shadowsocks-rm\/shadowsocks\/servers.py<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<\/li>\n<li>\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u7ba1\u7406 shadowsock-manyuser \u7684\u72b6\u6001<\/li>\n<\/ul>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">supervisorctl {start|stop|restart} ss-manyuser<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h1 id=\"\u8c37\u6b4cBBR\u52a0\u901f\">\u8c37\u6b4cBBR\u52a0\u901f<\/h1>\n<h2 id=\"OpenVZ-\u4ee5\u5916\u7684\uff08-KVM-\u3001-Xen-\u3001-VMware-\u7b49\uff09\">OpenVZ \u4ee5\u5916\u7684\uff08 KVM \u3001 Xen \u3001 VMware \u7b49\uff09<\/h2>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<div class=\"line\">3<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">wget &#8211;no-check-certificate https:\/\/github.com\/teddysun\/across\/raw\/master\/bbr.sh<\/div>\n<div class=\"line\">chmod +x bbr.sh<\/div>\n<div class=\"line\">.\/bbr.sh<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u8be6\u7ec6\u4fe1\u606f\u89c1\uff1a <a href=\"https:\/\/www.91yun.org\/archives\/5174\" target=\"_blank\" rel=\"external noopener noreferrer\">https:\/\/www.91yun.org\/archives\/5174<\/a><\/p>\n<h2 id=\"OpenVZ-\u5c0f\u9e21\">OpenVZ \u5c0f\u9e21<\/h2>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">wget &#8211;no-check-certificate https:\/\/raw.githubusercontent.com\/mmmwhy\/LKL_BBR\/master\/lkl\/install.sh &amp;&amp; bash install.sh<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u5982\u679c\u8fd0\u884c\u4e4b\u540e\uff0c\u53d1\u73b0\u4e0d\u80fd\u8fde\u63a5\u670d\u52a1\u5668\uff0c\u53ef\u80fd\u56e0\u4e3a\u9632\u706b\u5899\u8bbe\u7f6e\u95ee\u9898\u3002\u53ef\u4ee5\u76f4\u63a5\u5173\u95ednode\u8282\u70b9\u7684\u9632\u706b\u5899<br \/>\n\u5bf9\u4e8eCentOS:<\/p>\n<figure class=\"highlight plain\">\n<table>\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line\">1<\/div>\n<div class=\"line\">2<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"line\">service iptables stop #\u5173\u95ed\u547d\u4ee4\uff1a<\/div>\n<div class=\"line\">chkconfig iptables off# \u6c38\u4e45\u5173\u95ed\u9632\u706b\u5899\uff1a<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u8be6\u7ec6\u5185\u5bb9\u89c1\uff1a<a href=\"https:\/\/www.91yun.org\/archives\/6281\" target=\"_blank\" rel=\"external noopener noreferrer\">https:\/\/www.91yun.org\/archives\/6281<\/a><\/p>\n<h1 id=\"\u5176\u4f59\u5e38\u89c1\u9519\u8bef\uff1a\">\u5176\u4f59\u5e38\u89c1\u9519\u8bef\uff1a<\/h1>\n<p><a href=\"http:\/\/feiyang.li\/2017\/05\/03\/ss-panel\/index.html#\u5e38\u89c1\u9519\u8bef\">http:\/\/feiyang.li\/2017\/05\/03\/ss-panel\/index.html#\u5e38\u89c1\u9519\u8bef<\/a><\/p>\n<p>\u4e0e\u4e0a\u6587\u4e00\u6837\uff0c\u672c\u6587\u53c2\u8003\u4e86\u5982\u4e0b\u535a\u4e3b\u6587\u7ae0\uff0c\u5728\u6b64\u81f4\u8c22\uff1a<br \/>\n<a href=\"https:\/\/blessing.studio\/build-shadowsocks-sharing-site-with-ss-panel\/\" target=\"_blank\" rel=\"external noopener noreferrer\">https:\/\/blessing.studio\/build-shadowsocks-sharing-site-with-ss-panel\/<\/a><br \/>\n<a href=\"http:\/\/bitzhi.com\/2016\/03\/install-ss-go-mu-and-ss-panel-v3\/\" target=\"_blank\" rel=\"external noopener noreferrer\">http:\/\/bitzhi.com\/2016\/03\/install-ss-go-mu-and-ss-panel-v3\/<\/a><br \/>\n<a href=\"https:\/\/levyhsu.com\/?p=98\" target=\"_blank\" rel=\"external noopener noreferrer\">https:\/\/levyhsu.com\/?p=98<\/a><\/p>\n<\/div>\n<blockquote class=\"post-copyright\">\n<div class=\"content\"><span class=\"post-time\">\u6700\u540e\u66f4\u65b0\u65f6\u95f4\uff1a<time datetime=\"2017-05-26T01:13:00.278Z\">2017-05-26 09:13:00<\/time> <\/span><br \/>\n\u53ef\u4ee5\u8f6c\u8f7d\uff0c\u8bf7\u6ce8\u660e\u51fa\u5904\uff1a<a href=\"http:\/\/feiyang.li\/2017\/05\/05\/ss-panel-full\/\" target=\"_blank\" rel=\"external noopener noreferrer\">http:\/\/feiyang.li\/2017\/05\/05\/ss-panel-full\/<\/a><\/div>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>ss-panel + ss py mu\u5b89\u88c5\u6559\u7a0b \u8bfb\u8005\u5efa\u8bae\uff1a\u5982\u679c\u4f7f\u7528\u56fd\u5916vps\u5efa\u8bae\u4f1a\u5feb\u901f\u5f88\u591a\u3002\u56fd\u5185vps\u5efa\u8bae\u672c\u65b9&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"aside","meta":{"footnotes":""},"categories":[24,32],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-aside","hentry","category-shadowsocks","category-32","post_format-post-format-aside"],"_links":{"self":[{"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=64"}],"version-history":[{"count":0,"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=\/wp\/v2\/posts\/64\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}