开学之后由于服务器的各种问题,边写代码边搞了一波像是运维的活……
1.关于各种代理
首先由于网络的某些限制(包括校园网太垃圾的原因和一些众所周知的原因),执行一些命令(如apt-get,git clone)时需要使用代理服务器。在ubuntu下可以通过设置环境变量为某些程序设置http和https代理,但不是所有程序都会使用这些环境变量。
apt-get的代理设置:
在/etc/apt/apt.conf文件里插入如下行,或者在/etc/apt/apt.conf.d/目录下新建一个文件并写入如下行
Acquire::http::proxy "http://username:password@proxy.server:port/";
Acquire::https::proxy "https://username:password@proxy.server:port/";
其中,@前面的username和password分别是代理服务器的用户名和密码,如不需要用户名和密码,@符号和前面的部分可以省略。proxy.server和port分别是代理服务器的地址和端口(同下)。这个文件也可以不在上面所说的位置,在执行apt-get命令时要加上 "-c 文件位置" 这两个参数。apt-get只支持http和https代理,不支持socks5协议的代理。
pip的代理设置:
在执行pip命令时加--proxy参数,如:
pip install *** --proxy http://username:password@proxy.server:port
conda的代理设置:
可以直接执行
conda config --set proxy_servers.http http://username:password@proxy.server:port
conda config --set proxy_servers.https https://username:password@proxy.server:port
也可以修改~/.condarc配置文件,加入以下行:
proxy_servers:
http: http://username:password@proxy.server:port
https: http://username:password@proxy.server:port
关于conda的配置文件可以参考 Using the .condarc conda configuration file — conda 4.11.0.post3+0050c514 documentation
git的代理设置(参考https://gist.github.com/evantoli/f8c23a37eb3558ab8765):
设置代理:
git config --global http.proxy http://proxy.server:port/
git config --global https.proxy https://proxy.server:port/
取消设置代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
也可以直接编辑~/.gitconfig文件,加入如下行设置代理:
[http]
proxy = http://proxy.server:port/
[https]
proxy = https://proxy.server:port/
通过环境变量设置代理:(部分程序支持,如curl)
export HTTP_PROXY='http://username:password@proxy.server:port/'
export HTTPS_PROXY='https://username:password@proxy.server:port/'
export http_proxy='http://username:password@proxy.server:port/'
export https_proxy='https://username:password@proxy.server:port/'
取消代理:把相应的环境变量值设为空
通过Privoxy把socks5协议的代理转为http/https协议的代理:
在Privoxy的配置文件中添加一行
forward-socks5 / 127.0.0.1:1080 .
如果局域网内的机器和本机都要使用这个http代理服务器,可以把listen-address改成0.0.0.0
2.使用NFS服务器/客户端:
参考 Linux NFS Server: How to Set Up Server and Client
安装服务端:
sudo apt install nfs-kernel-server
安装客户端:
sudo apt install nfs-common
服务端设置:
1) 编辑/etc/exports文件,增加如下行:
# <服务器上的目录> <客户端IP>(rw,sync,no_subtree_check)
/mnt/sdb1 10.139.21.2(rw,sync,no_subtree_check)
# <服务器上的目录> <子网IP/子网掩码>(rw,sync,no_subtree_check)
/mnt/sdb1 10.139.21.1/24(rw,sync,no_subtree_check)
2) 执行如下命令:
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
客户端:
# sudo mount -t nfs <NFS服务端IP>:<NFS服务器上的目录> <本地目录>
sudo mount -t nfs 192.168.20.100:/myshareddir /var/locally-mounted