安装
首先下载ubuntu系统镜像,为了更快的下载速度可以使用清华的镜像,以20.04
版本为例,下载地址为 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/focal/ubuntu-20.04.1-desktop-amd64.iso
下载好之后,如果是用虚拟机,将iso加载到CD上即可安装,如果是在PC上安装,可以使用Rufus这个免费的小工具制作u盘启动盘,烧录镜像也可以用Etcher。
设置sudo免密码
每次sudo都要输入密码,很是麻烦,修改配置文件
1 | sudo visudo |
在文件尾加上
1 | username ALL=(ALL:ALL) NOPASSWD:ALL |
其中username
是你的用户名。“加在文件尾”这一点很重要,因为后面的策略会覆盖前面的策略,如果加在前面就可能被覆盖掉而无效。
设置默认文本编辑器
我个人比较偏向于使用简单易用的nano,想从nano改为vim或者从vim改为nano,可以用
1 | sudo update-alternatives --config editor |
更换apt源
这里我们同样使用清华的源,以20.04
版本为例(其他版本见此),编辑/etc/apt/sources.list
文件,加入以下内容(为加快速度注释掉了deb-src,想用的话可以取消注释)
1 | deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse |
更换完之后对系统进行更新
1 | sudo apt-get update |
更换pip/pip3源(选做)
在控制台执行以下命令设置清华源,如果用的是pip则将下面的pip3替换为pip
1 | pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple |
设置服务器RSA密钥登录
如果使用的是服务器,设置弱密码存在较大风险,比较安全的做法是改用密钥登录并禁用密码登录。
首先需要使用PuTTYgen
之类的生成工具生成公钥/私钥对,生成好的公钥为如下的一串:
1 | ssh-rsa AAAAB3...luwDMw== |
用用户名密码登录服务器后,创建文件夹~/.ssh
,编辑文件~/.ssh/authorized_keys
,将上面的公钥粘贴进去,保存文件。此时应该就可以正常使用了,可以退出并重新登录一次,验证密钥登录是否成功,如果不成功则需要检查一下是否是文件权限的问题,用chmod修改读取权限。
验证成功之后,就可以禁用密码登录方式了。具体步骤是,编辑/etc/ssh/sshd_config
文件,添加如下语句
1 | PasswordAuthentication no |
保存文件,执行sudo systemctl restart ssh
重启sshd
服务,这样下次登录的时候就不能再用密码。再次提醒,一定要先验证可以用密钥登录,不然就再也无法登录了!
美化
本着实用为目的,这里只做一些基本的美化,最终效果如下图所示
首先我们需要安装tweak tools及拓展工具
1 | sudo apt-get install gnome-tweak-tool gnome-shell-extensions chrome-gnome-shell |
安装Arc主题和papirus图标
1 | sudo apt-get install arc-theme papirus-icon-theme |
在浏览器中访问 https://extensions.gnome.org/ ,添加浏览器插件,并开启User Themes插件。
安装完成后,在软件中搜索tweaks,打开修改工具,我的配置如下,仅供参考
如果想把dash放在屏幕下方居中的话,下载DashtoDock这个拓展即可,查看自己的gnome版本号用
1 | gnome-shell --version |
代理配置
服务器端
·ssr
使用一键安装脚本
1 | git clone https://github.com/John-Ao/ss-fly |
安装使用./ss-fly.sh -ssr
,开启bbr使用./ss-fly.sh -bbr
如果发现ssr服务器无法使用,可以用cat /var/log/shadowsocks.log
查看错误信息,有可能是端口号被占用,修改端口号即可。
·MTProxy
获取并执行脚本文件mt_proxy.sh
1 | wget -N --no-check-certificate https://raw.githubusercontent.com/John-Ao/scripts/master/mt_proxy.sh && chmod +x mt_proxy.sh && ./mt_proxy.sh |
按提示输入端口号、secret信息即可
polipo - socks5转http代理
安装polipo:
1 | sudo apt-get install polipo |
然后修改配置文件/etc/polipo/config
1 | socksParentProxy="ip:port" |
修改完后重启polipo
1 | sudo /etc/init.d/polipo restart |
可以通过curl测试代理是否成功
1 | curl --proxy http://127.0.0.1:2160 https://www.google.com |
设置定时任务
有时ss服务器可能会出现不稳定的情况而莫名无法连接,此时可以使用crontab来设置定时重启,只需要修改/etc/crontab
文件即可。
客户端
配置snap代理
snap是少数不走proxychains的命令行工具,只能手动配置http代理,运行下面的语句(注意将修改代理端口2160
为实际使用端口)
1 | echo -e '[Service]\nEnvironment="http_proxy=http://127.0.0.1:2160/"' \ |
electron-ssr (推荐)
如果想通过deb安装,可以下载electron-ssr,建议使用0.2.3版本,0.2.4似乎无法使用。
proxychains+ssr
首先安装ssr
1 | sudo apt-get install build-essential |
获取ssr.sh
脚本文件
1 | wget -N --no-check-certificate https://raw.githubusercontent.com/John-Ao/scripts/master/ssr.sh && chmod +x ssr.sh |
然后在终端里输入
1 | ./ssr.sh install |
即可启用ssr,然后可以通过proxychains把tcp代理到socks5
1 | sudo apt-get install proxychains #安装 |
以后在需要的语句前面加上它就可以了,比如proxychains google-chrome
如果报错可以修改/usr/bin/proxychains
文件,先执行命令
1 | find /usr/lib/ -name libproxychains.so.3 -print |
然后把文件中的LD_PRELOAD改为上面所查找出来的路径
ssr-qt5
带有图形界面的ss-qt5是一个不错的选择,在apt install前需要添加ppa源:
1 | sudo add-apt-repository ppa:hzwhuang/ss-qt5 |
反之,如果要移除该ppa源,可以使用
1 | sudo add-apt-repository -r ppa:hzwhuang/ss-qt5 |
如果第一条语句出现找不到apt_pkg
错误,可以尝试用下面的方法解决:
1 | sudo apt install python3-apt |
软件配置
pyspark
1.安装jdk
1 | sudo apt-get install openjdk-8-jdk |
2.安装py4j
1 | pip3 install py4j |
3.下载pyspark
1 | wget "https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz" |
在~/.bashrc
文件中添加pyspark的路径,其中xxx按上面下载的实际情况填写
1 | export SPARK_HOME=/xxx/spark-2.4.3-bin-hadoop2.7 |
保存之后激活
1 | source ~/.bashrc |
4.设置及测试
现在输入pyspark
就可以进入交互式spark环境,和python交互式环境类似,开头会有一堆log信息,将log的等级从INFO修改为WARN看起来会舒服很多,修改方法如下
1 | cd ${SPARK_HOME} |
把文件中的
1 | log4j.rootCategory=INFO, console |
替换为
1 | log4j.rootCategory=WARN, console |
如果想使用ipython3
的话,需要设置环境变量
1 | export PYSPARK_DRIVER_PYTHON=ipython3 |
单次运行pyspark也可以用
1 | PYSPARK_DRIVER_PYTHON=ipython3 pyspark |
最后,我们可以运行一个计算Pi的程序来测试一下
1 | ${SPARK_HOME}/bin/run-example SparkPi 10 |
远程操作
相比vnc、xdrp之类的老牌解决方案,TeamViewer是一个更为方便的选择,它是一个免费的(限个人使用)多平台支持的远程控制软件,只需要在两台计算机上分别安装即可使用。