向Linux系统中安装Windows字体

经常使用Linux桌面的朋友可能偶尔会需要编缉在Windows系统中创建的办公文档,但是两个系统中安装的字体不同,在两个系统中打开相同的文档字体的显示可能会差别很大。可以手动向Linxu系统中安装Windows字体,Windows系统下的字体文件在Windows\Fonts下,直接拷贝出来即可。 在Linux系统中创建一个安装新字体的目录: sudo mkdir -p /usr/share/fonts/winFonts 拷贝所有Windows字体文件到该目录: sudo cp /home/user/Fonts/* /usr/share/fonts/winFonts/ 然后,改变权限: sudo chmod 644 /usr/share/fonts/winFonts/* 进入目录: cd /usr/share/fonts/winFonts/ 执行以下命令,再打开办公套件,字体列表中就会显示新安装的字体了。 sudo mkfontscale sudo mkfontdir sudo fc-cache -fv 在Ubuntu及其衍生系统中有一个很方便的软件font-manager,用于管理系统字体非常方便。

Linux客户端查看服务器端图形程序

客户端需要安装openssh-client,服务器需要安装openssh-server,一般情况下默认都是安装好的。 服务器端设置:/etc/ssh/sshd_config中,修改这一行,修改后是这样的: X11Forwarding yes 客户端设置:/etc/ssh/ssh_config中,修改三行,修改后如下: ForwardAgent yes ForwardX11 yes ForwardX11Trusted yes 修改完配置文件,在客户端终端执行 xhost + server_IP ssh -X root@server_IP export DISPLAY=client_IP:0.0 接着在客户端执行图形程序,图形界面便会转发过来了。 即便是服务器没有安装图形界面,只要安装了带有图形界面的程序,就可以进行转发,比如在服务器上安装Firefox,在客户端执行firefox,本地就会打开浏览器窗口。

Ubuntu 系统托盘图标消失

Ubuntu 16.04 + Gnome Shell 3.18.5 安装NextCloud,不显示状态栏图标 解决办法:卸载软件包:appmenu-qt5,重启系统即可解决 另外,由于系统本身默认状态栏图标显示在屏幕左下方,可以使用 TopIcons GNOME Shell extension,使用Tweak工具或者手动解压,安装后打开即可。   Ubuntu 18.04 不显示任何状态栏图标 使用gnome-tweak-tool禁用Ubuntu appindicators 扩展,然后运行sudo apt purge indicator-common,重新启用Ubuntu appindicators,重启系统。

通过源码编译ngrok并用于端口映射

如果要做端口映射,可以购买ngrok服务,也有免费的方案,可以从源代码自己编译ngrok软件。编译的版本是1.7,更高的版本没有开放源代码。 需要准备的材料: 1、一个备案域名,ngrok需要使用域名,不能直接用公网IP,这里域名以domain.com为例; 2、CentOS主机,在自己电脑上(可以使用虚拟机)或者VPS上都可以; 3、VPS,上面说的域名要设置解析到这台VPS的IP上。 下面列出的是我编译的过程: CentOS环境,要安装以下软件, yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ git go语言环境,要下载适合自己系统的go语言包  这里用的是centos 6.8 64位 所以选择以下包 wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz vim /etc/profile 修改环境变量,添加以下内容: export PATH=$PATH:/usr/local/go/bin source /etc/profile 检测是否安装成功go go version 下载ngrok源码包 mkdir /ngrok …

在公网上访问内网服务器的方法,使用端口映射

此方法适用于在内网中有一台Linux服务器并购买了VPS的情况。尽管网站可以直接搭建在VPS上,但是有些情况下对磁盘容量的需求比较大,比如同时搭建云盘服务,购买VPS的磁盘容量价格较高,这时候就可以把服务放在内网环境,使用VPS的公网IP访问内网服务器。 使用的工具很普通,就是SSH,如果你是头一次听说,一定会感到惊讶,这个我们经常在用的工具竟然还能够做端口映射,在我知道之前用的是付费的第三方内网穿透服务。当然,也许你第一次使用SSH的时候就已经全面地了解过它。 为了区分内网与外网的两台主机,这里使用Server表示VPS,Client表示内网中的主机。默认情况下,SSH连接远程Linux主机后长时间没有操作会自动断线,可以修改SSH的配置文件,保证连接不自动中断。设置的数值可以按照个人意愿修改,具体意义可以在网上查到。 在Server上进行设置,编缉/etc/ssh/sshd_config,添加 GatewayPorts=yes ClientAliveInterval 30 ClientAliveCountMax 60 # 重启SSH服务端 service sshd restart 设置Client,编缉/etc/ssh/ssh_config,添加 ServerAliveInterval 20 ServerAliveCountMax 999 # 重启SSH客户端 service ssh restart 至此,Server与Client设置完毕,可以开始端口映射了。这里以映射80端口为例,在Client主机上运行: ssh -C -f -N -g -R 80:localhost:80 root@[VPS的IP地址] 输入VPS的root密码即可。 SSH的这几个选项的意义: -C:压缩数据传输。 -f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。 -N :不执行脚本或命令,通常与-f连用。 -g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。 -L :本地端口:目标IP:目标端口 -R: 远程端口:目标IP:目标端口 到现在为止,如果内网主机上在80端口有web服务,则通过VPS的IP地址也能访问了。浏览器中输入VPS的IP地址即可,默认访问的就是80端口。

将文件直接上传到nextcloud数据目录,并用occ命令更新索引

向Nextcloud服务器上传文件,当文件比较小又比较多的时候,即便是在局域网下速度也会很慢,那有没有什么解决办法呢,联想到使用ftp上传的速度比较快,试过直接把文件上传到NC的数据目录,虽然在浏览器中看到了上传的文件,但是不能够进行移动删除等操作。NC中正常上传的文件会在数据库中进行记录,直接导入的文件没有记录在数据库中。NC安装目录中的occ命令可以用来更新文件的索引。从上传文件开始到更新数据库结束的操作如下: 1、局域网中使用FTP命令或者任意的FTP工具上传文件到服务器,将文件移动到NC数据文件夹的对应位置。更改文件的属型为755,属主与属组都为www-data。 2、在NC安装目录下运行更新索引的命令。 occ命令的用法: occ files:cleanup occ files:scan occ files:transfer-ownership 我们要使用第二个,在扫描文件的同时会更新数据库记录。 格式: files:scan [-p|–path=”…”] [-q|–quiet] [-v|vv|vvv –verbose] [–all] [user_id1] … [user_idN] 参数: user_id #扫描所指定的用户(一个或多个,多个用户ID之间要使用空格分开)的所有文件 选项: –path #限制扫描路径 –all #扫描所有已知用户的所有文件 –quiet #不输出统计信息 –verbose #在扫描过程中显示正在处理的文件和目录 –unscanned #仅扫描以前未扫描过的文件 以下是一个具体的命令示例: sudo -u www-data php occ files:scan –all #扫描所有用户的所有文件 执行命令后未进行扫描并列出扫描信息。 如果不想显示扫描信息,可以在后面加上 –quiet ,如下: sudo -u …

为PlexServer添加Let’s encrypt的证书

1、如果服务器上已经存在证书文件,把文件拷贝出来即可,这里域名以domainname.com为例 /etc/letsencrypt/live/domainname.com cert.pem chain.pem fullchain.pem privkey.pem 这里不用fullchain.pem 2、生成“打包证书” openssl pkcs12 -export -out archive.pfx -in cert.pem -inkey privkey.pem -certfile chain.pem -name “domainname.com” 生成证书的过程会要求设置密码(password),后续需要该密码 3、在服务器上建立适合的目录,将证书上传到服务器,并为证书设置权限 sudo chown plex:plex /var/lib/plexmediaserver/archive.pfx 4、在网页端设置Plex服务器 设置 〉 网络 〉 高级设置 Custom certificate location /var/lib/plexmediaserver/archive.pfx #Path to a PKCS #12 file containing a certificate and private key to …

安装Nextcloud server

Installing NextCloud on Ubuntu 16.04 sudo apt update sudo apt-get install apache2 mariadb-server libapache2-mod-php7.0 sudo apt-get install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring sudo apt-get install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip #Download NextCloud tar jxvf nextcloud*.bz2 sudo mv nextcloud /var/www/ #Configuring Apache Web Server sudo touch /etc/apache2/sites-available/nextcloud.conf #add Alias /nextcloud “/var/www/nextcloud/” …

开机自动登录远程服务器

先切换为root用户 sudo -s 然后运行SSH-KEY命令生成密钥,密钥文件会保存在Root用户目录下,使用时直接读取 sshkey-gen -t rsa 最后把公钥文件上传到服务器,以进行登录时认证使用 sftp user@server_ip put /root/.ssh/id_rsa.pub exit ssh user@server_ip cat /home/user/id_rsa.pub >> /home/user/.ssh/authorized_keys exit 之后再登录服务器即可自动连到到服务器 原因:用户登录的情况下,使用SSH-key只会读取当前用户个人的密钥,而rc.local是以root用户身份运行的,所以需要在root用户目录下创建密钥,否则查看进程会看到认证失败的提示,这个方法主要用在端口开机自动映射的情况下。