通过源码编译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用户目录下创建密钥,否则查看进程会看到认证失败的提示,这个方法主要用在端口开机自动映射的情况下。

Linux如何设置SSH Key登录?

1、生成ssh公钥和私钥,执行如下命令: ssh-keygen -t rsa 在生成过程中可以根据需要设置一个passphrase,也可以不设置。 2、生成完成后,会有相应的文件 id_rsa id_rsa.pub 3、将id_rsa.pub拷贝到目标服务器的~/.ssh目录 4、将公钥文件制成验证key,删除公钥文件 cat id_rsa.pub >> authorized_keys rm -rf id_rsa.pub 5、尝试登录,将不需要密码,如果设置了passphrase,则需要输入这个密码

开放端口

ubuntu下开放端口主要有两种办法: 自带的防火墙 使用iptables 安装iptables: $ sudo apt-get install iptables   添加规则: $ sudo iptables -I INPUT -p tcp –dport 80 -j ACCEPT   保存规则 $ sudo iptables-save   持久化iptables iptables-save只是暂时保存了端口的开放规则,如果关机或者重启,那么刚才添加的规则就会失效。 使用iptables-persistent可以对端口的开放规则进行持久化操作,使其永久保持有效。   安装iptables-persistent $ sudo apt-get install iptables-persistent   持久化规则 $ sudo netfilter-persistent save $ sudo netfilter-persistent reload   出处:https://blog.csdn.net/pcf1995/article/details/81082491

win10下Linux子系统开启ssh服务

安装ssh apt-get install openssh-server 修改sshd配置文件 sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 修改内容: Port 23 # 端口改为23,22端口已被系统占用 ListenAddress 0.0.0.0 # 取消注释 #StrictModes yes # 注释 PasswordAuthentication yes # 允许密码登录 启动ssh service ssh start 如果提示sshd error: could not load host key,则用下面的命令重新生成 sudo rm /etc/ssh/ssh*key dpkg-reconfigure openssh-server 出处:http://www.it1352.com/725354.html

VIM

VIM ESC + yy 在当前光标位置复制一行 ESC + p 粘贴到当前光标处 ESC + dd 删除光标所在行 ESC +:%s/检索字符/替换字符/g 查找并替换字符 执行命令 :!pwd    !:cp    !:(data)   文本处理 sort 排序 uniq 去重 grep 以行为单位搜索 sed 流编辑器 awk 终止状态 终止状态是0-255之间的值 0表示命令执行成功 其他数字表示执行失败 127表示未找到命令 若ctrl+C终止,终止状态变为信号值加128的和 重新执行 !n:s/old/new !n:gs/old/new 将之前的第n个命令的old字符串替换为new sed使用 8d 删除输入的第8行 /^$/d 删除所有空行 1,/^$/d 从第一行起删除直到发现空行 s/*$// 删除所有行尾出现的空格 …