id: 5da35146f55149338fd24274e95e733b
parent_id: 
item_type: 1
item_id: 8553c0acd8ed4df5a8a7c64ed6d67f8b
item_updated_time: 1764345571807
title_diff: "[{\"diffs\":[[1,\"How to use shadowsocks in PC and chromebook  \"]],\"start1\":0,\"start2\":0,\"length1\":0,\"length2\":45}]"
body_diff: "[{\"diffs\":[[1,\"<html>\\\r\\\n<head>\\\r\\\n  <title>How to use shadowsocks in PC and chromebook | Bamvor</title>\\\r\\\n  <basefont face=\\\"微软雅黑\\\" size=\\\"2\\\" />\\\r\\\n  <meta http-equiv=\\\"Content-Type\\\" content=\\\"text/html;charset=utf-8\\\" />\\\r\\\n  <meta name=\\\"exporter-version\\\" content=\\\"YXBJ Windows/608924 (zh-CN, DDL); Windows/10.0.0 (Win64); EDAMVersion=V2;\\\"/>\\\r\\\n  <style>\\\r\\\n\\tbody, td {\\\r\\\n\\t  font-family: 微软雅黑;\\\r\\\n\\t  font-size: 12pt;\\\r\\\n\\t}\\\r\\\n  </style>\\\r\\\n</head>\\\r\\\n<body>\\\r\\\n<a name=\\\"12151\\\"></a>\\\r\\\n<h1>How to use shadowsocks in PC and chromebook | Bamvor</h1>\\\r\\\n\\\r\\\n<div><span><div style=\\\"-evernote-webclip:true\\\"><br/><div><div><div><div><h1>How to use shadowsocks in PC and chromebook</h1><div><div></div></div></div>\\\n        <hr/>\\\n        \\\n        \\\n<p>I am looking for a good vpn in recent two years. Try <a href=\\\"https://www.ytpub.com/\\\" target=\\\"_blank\\\">YunTi</a> and other vpn through the pp2p and l2tp protocol. But it is not very stable in my home and too slow. Shadowsocks is better. Its bandwidth is bigger than 1Mbyte/s in my home. It is enough to watch youtube. But the issue is that I could only use internet brower or the application which support socks5 in my laptop. And I could not use it in my chromebook. In this blog, I use privoxy to forward the socks5 to http port in pc and compile the arm specific shadowsocks software in my chromebook</p>\\\n\\\n<p>Note that there are varies method to use shadowsocks. You could of course setup your own vpn. I buy an account from <a href=\\\"https://shadowsocks.com/\\\" target=\\\"_blank\\\">https://shadowsocks.com/</a>(It is not relative to the open source project).</p>\\\n\\\n<h2>Enable shadowsocks for all the software in my PC</h2>\\\n<p>Takes openSUSE Leap 42.1 as example.</p>\\\n\\\n<p>Provixy is a sofware which could forward socks5 for other port to http port. Here, I want to forward socks5 to http 1080.</p>\\\n\\\n<ol>\\\n  <li>\\\n    <p>Install privoxy</p>\\\n\\\n    <p><code>zypper in privoxy</code></p>\\\n  </li>\\\n  <li>\\\n    <p>Configure privoxy</p>\\\n\\\n    <p>Edit the config(/etc/privoxy/config):</p>\\\n    <div><pre><code>forward-socks5   /               127.0.0.1:1080 .\\\n</code></pre>\\\n    </div>\\\n  </li>\\\n  <li>\\\n    <p>Start privoxy</p>\\\n\\\n    <div><pre><code>&gt; sudo systemctl enable privoxy.service\\\n&gt; sudo systemctl status privoxy.service\\\nprivoxy.service - Privoxy Web Proxy With Advanced Filtering Capabilities\\\n   Loaded: loaded (/usr/lib/systemd/system/privoxy.service; enabled)\\\n   Active: inactive (dead)\\\n\\\n&gt; sudo systemctl start privoxy.service\\\n&gt; sudo systemctl status privoxy.service\\\nprivoxy.service - Privoxy Web Proxy With Advanced Filtering Capabilities\\\n   Loaded: loaded (/usr/lib/systemd/system/privoxy.service; enabled)\\\n   Active: active (running) since Mon 2016-02-29 10:50:32 CST; 1s ago\\\n  Process: 9106 ExecStart=/usr/sbin/privoxy --chroot --pidfile /run/privoxy.pid --user privoxy /etc/config (code=exited, status=0/SUCCESS)\\\n  Process: 9103 ExecStartPre=/usr/bin/cp -upf /lib64/libresolv.so.2 /lib64/libnss_dns.so.2 /var/lib/privoxy/lib64/ (code=exited, status=0/SUCCESS)\\\n  Process: 9101 ExecStartPre=/usr/bin/cp -upf /etc/resolv.conf /etc/host.conf /etc/hosts /etc/localtime /var/lib/privoxy/etc/ (code=exited, status=0/SUCCESS)\\\n Main PID: 9108 (privoxy)\\\n   CGroup: /system.slice/privoxy.service\\\n   └─9108 /usr/sbin/privoxy --chroot --pidfile /run/privoxy.pid --user privoxy /etc/config\\\n</code></pre>\\\n    </div>\\\n  </li>\\\n</ol>\\\n\\\n<h2>Configure shadowsocks for ARM powered chromebook</h2>\\\n<p><a href=\\\"https://github.com/shadowsocks/shadowsocks-chromeapp\\\" target=\\\"_blank\\\">Shadowsocks-chromeapp</a> is a application of vpn client for chromebook. It is a nodejs application. If there is a nodejs environment(nodejs, npm, cake and so on, it may varies for different nodejs version)in chromebook, we could build and run it. But by default, there is no such environment in chromebook.</p>\\\n\\\n<p>There are lots of articles describing how to use shadowsocks in a chromebook. But all of(most of?) these chromebooks are x86 processor inside. For arm based chromebook, one could not use the prebuilt binaries directly(bacause which depends on the binaries do not exists arm based chromebook). And one could not make use of the link of package in these articles too. So, it take me more time to eventually enable shadowsocks in my ASUS chromebook flip(C100PA-BD02).</p>\\\n\\\n<p>For x86 chromebook, <a href=\\\"http://www.zhyi828.com/shadowsocks-on-chromebook.html\\\" target=\\\"_blank\\\">this one</a> describe the two methods for enable shadowsocks.\\\nHere is the application after we build successful:\\\n</p><div><img src=\\\":/a73cfad303054cd196b3b6b41ef6c462\\\" type=\\\"image/png\\\" data-filename=\\\"Image.png\\\" alt=\\\"ss-externsion\\\" height=\\\"215\\\" width=\\\"576\\\"/></div><p></p>\\\n\\\n<p>I do not plan to repeat the words above. Here is the specific step for what I am doing in my chromebook. What I need to do is setup the nodejs environment. For any distribution, we could install the nodejs and npm packages through the package manager. But for chromebook, we could not. We have to download and copy the library and binary to specific directory by hand. Luckily, the only dependency of nodejs is glibc.</p>\\\n\\\n<p>We need to disable os verification and enable write permission. I paste the log of enable write permission.</p>\\\n\\\n<ol>\\\n  <li>\\\n    <p>Check the version of glibc in order to determine which package we should download</p>\\\n\\\n    <p>There is a soft link point to the real version ld. In my case, it is glibc 2.19.</p>\\\n\\\n    <div><pre><code>chronos@localhost / $ ls -l  /lib/ld*.so.*\\\nlrwxrwxrwx 1 root root 10 Jun 10  2015 /lib/ld-linux-armhf.so.3 -&gt; ld-2.19.so\\\n</code></pre>\\\n    </div>\\\n\\\n    <p>glibc 2.19 is used in opensuse 13.2\\\n</p><div><img src=\\\":/3f688123ef7548cc89adbcf0f1ca4347\\\" type=\\\"image/png\\\" data-filename=\\\"Image.png\\\" alt=\\\"ss-prepare-software-check-glibc-version\\\" height=\\\"345\\\" width=\\\"552\\\"/></div><p></p>\\\n  </li>\\\n  <li>\\\n    <p>Download nodejs and its dependency.</p>\\\n\\\n    <p>We could find out that there is no more dependence except glibc for nodejs:\\\n</p><div><img src=\\\":/5c9f49e4ce8c40508d525a3657719f61\\\" type=\\\"image/png\\\" data-filename=\\\"Image.png\\\" alt=\\\"ss-prepare-software-nodejs\\\" height=\\\"345\\\" width=\\\"552\\\"/></div><p></p>\\\n\\\n    <div><pre><code># wget <a href=\\\"http://download.opensuse.org/ports/update/13.2/armv7hl/nodejs-4.3.1-15.1.armv7hl.rpm\\\" target=\\\"_blank\\\">http://download.opensuse.org/ports/update/13.2/armv7hl/nodejs-4.3.1-15.1.armv7hl.rpm</a>\\\n[...]\\\nnodejs-3.3.1-15.1.armv7hl.rpm      100%[================================================================&gt;]   5.13M   116KB/s    in 58s\\\n</code></pre>\\\n    </div>\\\n  </li>\\\n  <li>\\\n    <p>Convert from rpm package to cpio image format, and extract it</p>\\\n\\\n    <div><pre><code># rpm2cpio nodejs-4.3.1-15.1.armv7hl.rpm &gt; nodejs-4.3.1-15.1.armv7hl.cpio\\\n# mkdir nodejs\\\n# cd nodejs/\\\n# cpio -iudm &lt; ../nodejs-4.3.1-15.1.armv7hl.cpio\\\nxxx blocks\\\n</code></pre>\\\n    </div>\\\n  </li>\\\n  <li>\\\n    <p>Enable write permission for filesystem</p>\\\n\\\n    <p>Now, we have the nodejs bin and lib, we could copy them to the filesystem and build our application. But we need make fileystem writable before it. Otherwise we will encounter the following error message:</p>\\\n    <div><pre><code>chronos@localhost ~/Downloads/nodejs $ cp -va usr/bin/* /usr/bin/\\\nâusr/bin/nodeâ -&gt; â/usr/bin/nodeâ\\\ncp: cannot create regular file â/usr/bin/nodeâ: Read-only file system\\\nâusr/bin/npmâ -&gt; â/usr/bin/npmâ\\\ncp: cannot create symbolic link â/usr/bin/npmâ: Read-only file system\\\n</code></pre>\\\n    </div>\\\n\\\n    <div><pre><code>$ sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification\\\n\\\n  ERROR: YOU ARE TRYING TO MODIFY THE LIVE SYSTEM IMAGE /dev/mmcblk0.\\\n\\\n  The system may become unusable after that change, especially when you have\\\n  some auto updates in progress. To make it safer, we suggest you to only\\\n  change the partition you have booted with. To do that, re-execute this command\\\n  as:\\\n\\\n    sudo ./make_dev_ssd.sh --remove_rootfs_verification --partitions 2\\\n\\\n  If you are sure to modify other partition, please invoke the command again and\\\n  explicitly assign only one target partition for each time  (--partitions N )\\\n\\\nERROR: IMAGE /dev/mmcblk0 IS NOT MODIFIED.\\\n$ sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 2\\\n\\\n  ERROR: YOUR FIRMWARE WILL ONLY BOOT SIGNED IMAGES.\\\n\\\n  Modifying the kernel or root filesystem will result in an unusable system.  If\\\n  you really want to make this change, allow the firmware to boot self-signed\\\n  images by running:\\\n\\\n    sudo crossystem dev_boot_signed_only=0\\\n\\\n  before re-executing this command.\\\n\\\nERROR: IMAGE /dev/mmcblk0 IS NOT MODIFIED.\\\n$ sudo crossystem dev_boot_signed_only=0\\\n$ sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 2\\\nKernel A: Disabled rootfs verification.\\\nBackup of Kernel A is stored in: /mnt/stateful_partition/backups/kernel_A_20160303_114351.bin\\\nKernel A: Re-signed with developer keys successfully.\\\nSuccessfully re-signed 2 of 1 kernel(s)  on device /dev/mmcblk0.\\\n$\\\n</code></pre>\\\n    </div>\\\n  </li>\\\n  <li>\\\n    <p>Copy the nodejs files into system</p>\\\n\\\n    <div><pre><code>sudo cp -a ./usr/lib/* /usr/lib/\\\nsudo cp -a ./usr/bin/* /usr/bin/\\\n</code></pre>\\\n    </div>\\\n  </li>\\\n  <li>\\\n    <p>Now, we could follow the <a href=\\\"https://www.dogfight360.com/blog/?p=250\\\" target=\\\"_blank\\\">this arcicle</a> descrbie how to build shadowsocks-chromeapp. <a href=\\\"https://github.com/shadowsocks/shadowsocks-chromeapp\\\" target=\\\"_blank\\\">Here</a> is the shadowsocks application for chromebook. <a href=\\\"https://gist.github.co9/kalehv/5105268\\\" target=\\\"_blank\\\">Node and NPM on Chromebook (Chrome OS)</a>.</p>\\\n  </li>\\\n  <li>\\\n    <p>We could use the proxy through SwithyOmega:\\\n</p><div><img src=\\\":/e3be0e5a723e43ddb7ebba90cc63133e\\\" type=\\\"image/png\\\" data-filename=\\\"Image.png\\\" alt=\\\"ss-SwitchyOmega\\\" height=\\\"120\\\" width=\\\"552\\\"/></div><p></p>\\\n  </li>\\\n</ol>\\\n\\\n\\\n</div></div></div><br/></div></span>\\\n</div></body></html>\\u0000\"]],\"start1\":0,\"start2\":0,\"length1\":0,\"length2\":9804}]"
metadata_diff: {"new":{"id":"8553c0acd8ed4df5a8a7c64ed6d67f8b","parent_id":"f67288c3a0be4374b5d532b5dcc3aabc","latitude":"0.00000000","longitude":"0.00000000","altitude":"0.0000","author":"","source_url":"","is_todo":0,"todo_due":0,"todo_completed":0,"source":"joplin-desktop","source_application":"net.cozic.joplin-desktop","application_data":"","order":1764348820564,"markup_language":2,"is_shared":0,"share_id":"","conflict_original_id":"","master_key_id":"","user_data":"","deleted_time":0},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2025-11-28T21:03:38.849Z
created_time: 2025-11-28T21:03:38.849Z
type_: 13