my blog my blog

Tag: Ubuntu
Ubuntu安装Node.js教程

 

在Ubuntu服务器中端中执行如下命令可以安装4.x版本的node.js

  1. curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - 
  2. sudo apt-get install -y nodejs 

如果想安装5.x版本的node.js可以执行

  1. curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash - 
  2. sudo apt-get install -y nodejs 

编译安装就不介绍了。

Ubuntu下shadowsocks多用户后端manyuser+前端sspanel搭建教程

 

好吧,很多东西还是有个前端管理起来比较方便,奶牛今天也配了个,写下过程记录下。

安装shadowsocks支持

  1. apt-get install python-pip python-m2crypto
  2. pip install cymysql

安装LNMP

  1. wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && cd lnmp1.2-full && ./install.sh lnmp

后端安装配置

  1. git clone -b manyuser https://github.com/mengskysama/shadowsocks.git 
  2. cd ./shadowsocks/shadowsocks 
  3. vim Config.py 
  4.     #Config 
  5.     MYSQL_HOST = 'localhost' #这一行是服务器IP,127.0.0.1表示本机 
  6.     MYSQL_PORT = 3306 #数据库端口号 
  7.     MYSQL_USER = 'nenew' #数据库用户名 
  8.     MYSQL_PASS = 'nenew' #数据库密码 
  9.     MYSQL_DB = 'shadowsocks' #数据库名称 
  10.  
  11.     MANAGE_PASS = 'ss233333333' 
  12.     #if you want manage in other server you should set this value to global ip 
  13.     MANAGE_BIND_IP = '127.0.0.1' 
  14.     #make sure this port is idle 
  15.     MANAGE_PORT = 23333 
  16.  
  17. python server.py 

在mysql数据库中新建数据库shadowsocks,并添加用户nenew,导入manyuser中的sql文件,然后执行python server.py。如果没有异常,则表示已经安装成功后端。

前端安装:

  1. lnmp vhost add 

添加虚拟主机,然后进入虚拟主机目录

  1. wget https://github.com/orvice/ss-panel/archive/master.zip 
  2. unzip master.zip 
  3. rm master.zip 
  4. mv -f ss-panel-master/* ./ 
  5. mv lib/config-simple.php lib/config.php 
  6. vim lib/config.php 

编辑配置信息,然后将lib文件夹下的sql文件都导入到nenew数据库中。

添加守护进程supervisor:

  1. apt-get install supervisor 
  2. echo_supervisord_conf > /etc/supervisor/supervisord.conf 
  3. vim /etc/supervisor/supervisord.conf 

将文件最后添加

  1. [program:shadowsocks] 
  2. command=python /root/shadowsocks/shadowsocks/server.py -c /root/shadowsocks/shadowsocks/config.json 
  3. autorestart=true 
  4. user=root 

其中的目录自己根据实际情况设置,重启即可。

前端github:https://github.com/orvice/ss-panel

后端github:https://github.com/mengskysama/shadowsocks

顺带广告,ss服务器150元每年,需要者联系,联系方式见杂货铺。

Ubuntu下socks5代理服务器dante-server的安装与配置

 

安装

  1. apt-get install dante-server 

配置文件在/etc/danted.conf

  1. vim /etc/danted.conf 
  2. # $Id: sockd.conf,v 1.43 2005/12/26 16:35:26 michaels Exp $ 
  3. # A sample danted.conf 
  4. # The configfile is divided into three parts; 
  5. #    1) serversettings 
  6. #    2) rules 
  7. #    3) routes 
  8. # The recommended order is: 
  9. #   Serversettings: 
  10. #               logoutput 
  11. #               internal 
  12. #               external 
  13. #               method 
  14. #               clientmethod 
  15. #               users 
  16. #               compatibility 
  17. #               extension 
  18. #               connecttimeout 
  19. #               iotimeout 
  20. #               srchost 
  21. #  Rules: 
  22. #       client block/pass 
  23. #               from to 
  24. #               libwrap 
  25. #               log 
  26. #     block/pass 
  27. #               from to 
  28. #               method 
  29. #               command 
  30. #               libwrap 
  31. #               log 
  32. #               protocol 
  33. #               proxyprotocol 
  34. #  Routes: 
  35.  
  36. # the server will log both via syslog, to stdout and to /var/log/lotsoflogs 这行是日志输出,输出到syslog stdout和lotsoflogs里面
  37. logoutput: syslog stdout /var/log/lotsoflogs 
  38.  
  39. # The server will bind to the address 10.1.1.1, port 1080 and will only 
  40. # accept connections going to that address. 
  41. #internal: 10.1.1.1 port = 1080 
  42. # Alternatively, the interface name can be used instead of the address. 这里设置eth0为网卡,端口1080
  43. internal: eth0 port = 1080 
  44.  
  45. # all outgoing connections from the server will use the IP address 
  46. # 195.168.1.1 
  47. #external: 192.168.1.1,这里是设置流量出口使用的ip,也是用eth0网卡的
  48. external:eth0
  49. # list over acceptable methods, order of preference. 
  50. # A method not set here will never be selected. 
  51. # If the method field is not set in a rule, the global 
  52. # method is filled in for that rule. 
  53.  
  54. # methods for socks-rules. 设置方式为用户名模式
  55. method: username 
  56. #methods for client-rules. 
  57. clientmethod: none 
  58.  
  59. #or for PAM authentification 
  60. #method: pam 
  61.  
  62. # An important section, pay attention. 
  63.  
  64. # when doing something that can require privilege, it will use the 
  65. # userid: 
  66. user.privileged: root 
  67.  
  68. # when running as usual, it will use the unprivileged userid of: 
  69. user.notprivileged: nobody 
  70.  
  71. # If you compiled with libwrap support, what userid should it use 
  72. # when executing your libwrap commands?  "libwrap". 
  73. user.libwrap: nobody 
  74.  
  75.  
  76. # some options to help clients with compatibility: 
  77.  
  78. # when a client connection comes in the socksserver will try to use 
  79. # the same port as the client is using, when the socksserver 
  80. # goes out on the clients behalf (external: IP address). 
  81. # If this option is set, Dante will try to do it for reserved ports aswell. 
  82. # This will usually require user.privileged to be set to "root". 
  83. compatibility: sameport 
  84.  
  85. # If you are using the bind extension and have trouble running servers 
  86. # via the server, you might try setting this.  The consequences of it 
  87. # are unknown. 
  88. compatibility: reuseaddr 
  89.  
  90. # The Dante server supports some extensions to the socks protocol. 
  91. # These require that the socks client implements the same extension and 
  92. # can be enabled using the "extension" keyword. 
  93. # enable the bind extension. 
  94. extension: bind 
  95.  
  96.  
  97. # misc options. 
  98.  
  99. # how many seconds can pass from when a client connects til it has 
  100. # sent us it's request?  Adjust according to your network performance 
  101. # and methods supported. 
  102. #connecttimeout: 30   # on a lan, this should be enough if method is "none". 
  103.  
  104. # how many seconds can the client and it's peer idle without sending 
  105. # any data before we dump it?  Unless you disable tcp keep-alive for 
  106. # some reason, it's probably best to set this to 0, which is 
  107. # "forever". 
  108. #iotimeout: 0 # or perhaps 86400, for a day. 
  109.  
  110. # do you want to accept connections from addresses without 
  111. # dns info?  what about addresses having a mismatch in dnsinfo? 
  112. #srchost: nounknown nomismatch 
  113.  
  114. # The actual rules.  There are two kinds and they work at different levels. 
  115. # The rules prefixed with "client" are checked first and say who is allowed 
  116. # and who is not allowed to speak/connect to the server.  I.e the 
  117. # ip range containing possibly valid clients. 
  118. # It is especially important that these only use IP addresses, not hostnames, 
  119. # for security reasons. 
  120. # The rules that do not have a "client" prefix are checked later, when the 
  121. # client has sent its request and are used to evaluate the actual 
  122. # request. 
  123. # The "to:" in the "client" context gives the address the connection 
  124. # is accepted on, i.e the address the socksserver is listening on, or 
  125. # just "0.0.0.0/0" for any address the server is listening on. 
  126. # The "to:" in the non-"client" context gives the destination of the clients 
  127. # socksrequest. 
  128. # "from:" is the source address in both contexts. 
  129.  
  130.  
  131. # the "client" rules.  All our clients come from the net 10.0.0.0/8. 
  132.  
  133. # Allow our clients, also provides an example of the port range command. 设置客户可以通过任何ip登陆,访问任何ip
  134. client pass { 
  135.         from: 0.0.0.0/0 to: 0.0.0.0/0 
  136. #       method: rfc931 # match all idented users that also are in passwordfile 
  137.  
  138. # This is identical to above, but allows clients without a rfc931 (ident) 
  139. # too.  In practise this means the socksserver will try to get a rfc931 
  140. # reply first (the above rule), if that fails, it tries this rule. 
  141. #client pass { 
  142. #       from: 10.0.0.0/8 port 1-65535 to: 0.0.0.0/0 
  143. #} 
  144.  
  145.  
  146. # drop everyone else as soon as we can and log the connect, they are not 
  147. # on our net and have no business connecting to us.  This is the default 
  148. # but if you give the rule yourself, you can specify details. 
  149. #client block { 
  150. #       from: 0.0.0.0/0 to: 0.0.0.0/0 
  151. #       log: connect error 
  152. #} 
  153.  
  154.  
  155. # the rules controlling what clients are allowed what requests 
  156.  
  157. # you probably don't want people connecting to loopback addresses, 
  158. # who knows what could happen then. 
  159. #block { 
  160. #       from: 0.0.0.0/0 to: 127.0.0.0/8 
  161. #       log: connect error 
  162. #} 
  163.  
  164. # the people at the 172.16.0.0/12 are bad, no one should talk to them. 
  165. # log the connect request and also provide an example on how to 
  166. # interact with libwrap. 
  167. #block { 
  168. #       from: 0.0.0.0/0 to: 172.16.0.0/12 
  169. #       libwrap: spawn finger @%a 
  170. #       log: connect error 
  171. #} 
  172.  
  173. # unless you need it, you could block any bind requests. 
  174. #block { 
  175. #       from: 0.0.0.0/0 to: 0.0.0.0/0 
  176. #       command: bind 
  177. #       log: connect error 
  178. #} 
  179.  
  180. # or you might want to allow it, for instance "active" ftp uses it. 
  181. # Note that a "bindreply" command must also be allowed, it 
  182. # should usually by from "0.0.0.0/0", i.e if a client of yours 
  183. # has permission to bind, it will also have permission to accept 
  184. # the reply from anywhere. 
  185. #pass { 
  186. #       from: 10.0.0.0/8 to: 0.0.0.0/0 
  187. #       command: bind 
  188. #       log: connect error 
  189. #} 
  190.  
  191. # some connections expect some sort of "reply", this might be 
  192. # the reply to a bind request or it may be the reply to a 
  193. # udppacket, since udp is packetbased. 
  194. # Note that nothing is done to verify that it's a "genuine" reply, 
  195. # that is in general not possible anyway.  The below will allow 
  196. # all "replies" in to your clients at the 10.0.0.0/8 net. 
  197. #pass { 
  198. #       from: 0.0.0.0/0 to: 10.0.0.0/8 
  199. #       command: bindreply udpreply 
  200. #       log: connect error 
  201. #} 
  202.  
  203.  
  204. # pass any http connects to the example.com domain if they 
  205. # authenticate with username. 
  206. # This matches "example.com" itself and everything ending in ".example.com". 
  207. #pass { 
  208. #       from: 10.0.0.0/8 to: .example.com port = http 
  209. #       log: connect error 
  210. #       method: username 
  211. #} 
  212.  
  213.  
  214.  
  215.  
  216. # block any other http connects to the example.com domain. 
  217. #block { 
  218. #       from: 0.0.0.0/0 to: .example.com port = http 
  219. #       log: connect error 
  220. #} 
  221.  
  222. # everyone from our internal network, 10.0.0.0/8 is allowed to use 
  223. # tcp and udp for everything else. 设置协议支持tcp和udp
  224. pass { 
  225.         from: 0.0.0.0/0 to: 0.0.0.0/0 
  226.         protocol: tcp udp 
  227.  
  228. # last line, block everyone else.  This is the default but if you provide 
  229. # one  yourself you can specify your own logging/actions 
  230. #block { 
  231. #       from: 0.0.0.0/0 to: 0.0.0.0/0 
  232. #       log: connect error 
  233. #} 
  234.  
  235. # route all http connects via an upstream socks server, aka "server-chaining". 
  236. #route { 
  237. # from: 10.0.0.0/8 to: 0.0.0.0/0 port = http via: socks.example.net port = socks 
  238. #} 

配置完成,

  1. /etc/init.d/danted start 

进行启动。登陆是用本机用户名和密码即可。建议将用户的shell设置为nologin

linux下命令行上传下载测速

 

好吧,最近搞了个香港服务器,但是香港带宽限制比较严格,当然不能吃亏了,测速,必须测速。

今天主角出场speedtest-cli,它工作在Python 2.4-3.4

安装:

  1. pip / easy_install 
  2.  
  3. pip install speedtest-cli 
  4.  
  5. or 
  6.  
  7. easy_install speedtest-cli 
  8.  
  9. Github 
  10.  
  11. pip install git+https://github.com/sivel/speedtest-cli.git 
  12.  
  13. or 
  14.  
  15. git clone https://github.com/sivel/speedtest-cli.git 
  16. python speedtest-cli/setup.py install 
  17.  
  18. Just download (Like the way it used to be) 
  19.  
  20. wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest_cli.py 
  21. chmod +x speedtest-cli 
  22.  
  23. or 
  24.  
  25. curl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest_cli.py 
  26. chmod +x speedtest-cli 

功能和使用:

  1. $ speedtest-cli -h 
  2. usage: speedtest-cli [-h] [--bytes] [--share] [--simple] [--list] 
  3.                      [--server SERVER] [--mini MINI] [--source SOURCE] 
  4.                      [--timeout TIMEOUT] [--version] 
  5.  
  6. Command line interface for testing internet bandwidth using speedtest.net. 
  7. -------------------------------------------------------------------------- 
  8. https://github.com/sivel/speedtest-cli 
  9.  
  10. optional arguments: 
  11.   -h, --help         show this help message and exit 
  12.   --bytes            Display values in bytes instead of bits. Does not affect 
  13.                      the image generated by --share 
  14.   --share            Generate and provide a URL to the speedtest.net share 
  15.                      results image 
  16.   --simple           Suppress verbose output, only show basic information 
  17.   --list             Display a list of speedtest.net servers sorted by 
  18.                      distance 
  19.   --server SERVER    Specify a server ID to test against 
  20.   --mini MINI        URL of the Speedtest Mini server 
  21.   --source SOURCE    Source IP address to bind to 
  22.   --timeout TIMEOUT  HTTP timeout in seconds. Default 10 
  23.   --version          Show the version number and exit 

简单测速,奶牛是在ubuntu下进行的测试:

  1. apt-get install python-pip 
  2. pip install speedtest-cli 

安装完成后执行:

  1. speedtest 

测试结果如下:

  1. root@gameserver1:~# speedtest  
  2. Retrieving speedtest.net configuration...  
  3. Retrieving speedtest.net server list...  
  4. Testing from Shanghai Anchnet Network Technology (XXX.XXX.XXX.XXX)...  
  5. Selecting best server based on latency...  
  6. Hosted by Shanghai Branch, China Unicom (Shanghai) [19.64 km]: 29.249 ms  
  7. Testing download speed........................................  
  8. Download: 18.84 Mbit/s  
  9. Testing upload speed..................................................  
  10. Upload: 1.51 Mbit/s  

 

BeagleBone-Black的sources.list备份
  1. vim /etc/apt/sources.list 
  2.  
  3. deb  http://mirror.bit.edu.cn/debian/ wheezy main contrib non-free 
  4. #deb-src http://ftp.us.debian.org/debian/ wheezy main contrib non-free 
  5.  
  6.  
  7. deb  http://mirror.bit.edu.cn/debian/ wheezy-updates main contrib non-free 
  8. #deb-src http://ftp.us.debian.org/debian/ wheezy-updates main contrib non-free 
  9.  
  10.  
  11. #deb-src  http://mirror.bit.edu.cn/debian/ wheezy/updates main contrib non-free 
  12. #deb-src http://security.debian.org/ wheezy/updates main contrib non-free 
  13.  
  14.  
  15. #deb http://ftp.debian.org/debian wheezy-backports main contrib non-free 
  16. ##deb-src http://ftp.debian.org/debian wheezy-backports main contrib non-free 
  17.  
  18. deb [arch=armhf] http://debian.beagleboard.org/packages wheezy-bbb main 
  19. #deb-src [arch=armhf] http://debian.beagleboard.org/packages wheezy-bbb main 

 

Linux系统中Lightdm开启的VNC会话不能保持的解决方案

 

在奶牛的BeagleBone-Black里面装的Debian系统+openbox桌面,用lightdm管理的(好吧,都是默认的),但是发现在lightdm.conf中将vnc启用后vnc是可以用了,但是每次链接都产生一个新的会话,退出后会话自动毁灭,不能长久保持,这让奶牛很烦恼,因为要想用bb-black来当离线下载机,这样子可不行,还指望着vnc来长期管理呢。好吧,说说处理方法,首先将lightdm.conf中的vnc禁用。

  1. vim /etc/rc.local 
  2. #!/bin/sh -e 
  3. # rc.local 
  4. # This script is executed at the end of each multiuser runlevel. 
  5. # Make sure that the script will "exit 0" on success or any other 
  6. # value on error. 
  7. # In order to enable or disable this script just change the execution 
  8. # bits. 
  9. # By default this script does nothing. 
  10. su debian -c "vncserver -name debian -depth 16 -geometry 1366x768 -alwaysshared" 

这样子就相当于开机用debian用户启动vnc服务器,端口是5901,然后我们

  1. . /etc/rc.local 

来执行一次,然后设置debian用户的vnc密码,设置完成后

  1. ln -s /etc/rc.local /etc/rc5.d/S07rc.local 

这样可以防止rc.local在开机时候不被执行。

BeagleBone-Black的debian系统安装中文字体支持教程

 

BeagleBone-Black的debian中默认没有中文,处理方法如下,可以保证中文不显示成方块。

 

  1. apt-get install locales 
  2. dpkg-reconfigure locales 
  3. 选择zh_CN UTF-8 UTF-8后保存退出 
  4. apt-get install ttf-arphic-uming 
  5. apt-get install ttf-wqy-zenhei 

 

Ubuntu One文件服务即将关闭

 

今天收到ubuntu one发来的邮件,说6月1日,也就是儿童节的时候,ubuntu one文件服务就关闭了,以前上传的文件还可以下载,为期延长两个月。如果以前购买过续期的可以得到退款,还有他们诚挚的歉意,好吧,免费的东西不多得,收费的东西也有尽头,节哀。以下是ubuntu one团队的邮件

 

  1. Hi, 
  2.  
  3. We are writing to you to notify you that we will be shutting down the 
  4. Ubuntu One file services, effective 1 June 2014. This email gives 
  5. information about the closure and what you should expect during the 
  6. shutdown process. 
  7.  
  8. As of today, it will no longer be possible to purchase storage or music 
  9. from the Ubuntu One store. The Ubuntu One file services apps in the Ubuntu, 
  10. Google, and Apple stores will be updated appropriately. 
  11.  
  12. As always, your content belongs to you.  You can simply download your files 
  13. onto your PC or an external hard drive.  While the service will stop as of 
  14. 1 June, you will have an additional two months (until 31 July 2014) to 
  15. collect all of your content. After that date, all remaining content will 
  16. be deleted. 
  17.  
  18. If you have an active annual subscription, the unused portion of your fees 
  19. will be refunded. The refund amount will be calculated from today's 
  20. announcement. 
  21.  
  22. We know you have come to rely on Ubuntu One, and we apologise for the 
  23. inconvenience this closure may cause.  We've always been inspired by the 
  24. support, feedback and enthusiasm of our users and want to thank you for 
  25. the support you've shown for Ubuntu One. We hope that you'll continue to 
  26. support us as together we bring a revolutionary experience to new devices. 
  27.  
  28. The Ubuntu One team 

 

Steam For Linux正版游戏大促销【2.5~5折哦,速度抢购咯】

 

好机会,Linux下的正版游戏平台steam for linux今日发布促销活动哦,折扣力度相当大,可见对linux正版游戏推广的用心良苦哇。而50%~75% OFF的促销觉得应该也比较罕见吧,游戏列表还是比较丰富的,并且steam很亲民的支持支付宝付款,相当方便。在游戏方面,很多游戏都是三平台都支持的,windows linux mac都跑起,比如cs source 即cs起源,估计全球攻势cs go也快了,奶牛继续等待,最近玩儿cs go很high哇,朋友们可以先入个cs source感受下,因为引擎差别不是太大,估计cs go到达steam for linux也指日可待啦。而且steam for linux对于ubuntu等系统的支持也是很不错的。

促销活动地址:http://store.steampowered.com/sale/linux_release?snr=1_41_4__42

活动截至时间:至 2 月 21 日太平洋标准时间上午 10 点

具体促销内容看截图:

 

Ubuntu移动版操作系统之我见

 

Ubuntu今天发布了移动版本系统,虽然ubuntu for android在很久之前就提出来了,但是真东西还一直没见过,现在ubuntu for phone也出来了,看样子就不仅仅是个以android为基础的设计了,而是自己开始开发移动版操作系统。对于已经较为成熟的linux内核的Android操作系统,ubuntu移动系统的出现可能并不会造成太大的影响,而且,现阶段完全看不到什么优势。

1.界面

看过介绍视频的朋友应该第一印象是ubuntu手机系统的界面还是以触屏为基础的滑动型界面,其中融入了很多unity的元素,比如边栏的Launcher,多少可以看到些桌面版本的影子。在UI上有不少创新,但是在这方面Android的操作相对而言并没有什么劣势,可定制性还更强,因为Android的启动器有很多家都在做,而且美观程度与使用程度都很强大。

2.厂商支持

估计这个是最关键的,大厂商一年能出几款机器都是有数的,就拿htc说事儿,今年有几款机型,多数Android系统,出了8s跟8x的wp8手机,之外的我们了解就很少了,三星主打就是Android而且今年的新机型也不多,moto lg的也都如此,所以,从厂商方面,他们没出一台新机器都会很慎重,对于技术不成熟的产品,未见会有大兴趣。

3.应用

上面那些虽然重要,但我觉得不是至关重要的,买智能手机,我们最看重的就是应用。现在应用方面我觉得可以算是IOS的跟Android的两家独大,虽然WP的也有很多,但是从出货量上与Android跟IOS还是有很大差距,暂且不说。Ubuntu移动版有多少应用呢?又会有多少人为其开放应用呢?我反而觉得Chrome OS跟Firefox OS会有更大的优势,至少人家专注在浏览器,专注在web app,而且web app的跨平台性也会好很多,所以开发者还是会考虑的,但是ubuntu的移动版哩,呃。。。

也并没有打击谁的意思,只是觉得还是专注做好自己的桌面Linux就好了,搞移动操作系统,想在其中分块肉,并非易事,微软尚且没有做那么成功,何况canonical。微软的wm系统在移动智能操作系统领域也是先驱,底子绝对够厚,如今也还是被Android压得很累。Android从2.x版本到现在的4.2版本,真的是越来越成熟,系统的流畅度也有目共睹。看着ubuntu port在谷歌三儿子的视频,心里也不知道是个啥滋味了,难道只能做个geek的玩物?

Ubuntu OS Port On Galaxy Nexus视频如下: