Hits: 67

首先购买香港的服务器,不需要备案,开通即可生效;

端口扫描,看什么端口开启;netstat -ntlp ;只有22端口是打开的;  netstat -aptn  开启和连接情况

sudo iptables -I INPUT -p tcp –dport 9000 -j ACCEPT

然后使用netstat -an | grep 9000 查看并没有打开端口

http://www.zsythink.net/archives/1199   iptables详解:图文并茂理解iptables

https://blog.csdn.net/qq_34870631/article/details/78581891          SELinux、Netfilter、iptables、firewall和UFW五者关系

 

https://www.cnblogs.com/jytx/p/5447394.html

(不需要)使用apt-get命令来安装Go环境

apt-get install software-properties-common
apt-get install python-software-properties
add-apt-repository ppa:gophers/go
apt-get update
apt-get install golang-go git-core mercurial

设置GOPATH变量,指定工作空间

在当前目录下的.bashrc文件最后增加 export GOPATH=/opt/go
echo “export GOPATH=/opt/go” >> ~/.bashrc
重新加载.bashrc文件
source ~/.bashrc

一键安装谷歌 BBR 加速

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

证书安装请参考https://10001blog.xslinc.com/?p=7758

crontab -e    /     0 3 1 * * /root/nginx/certs/renew.sh
curl https://get.acme.sh | sh
mkdir -p /root/nginx/certs
vi /root/nginx/certs/renew.sh

增加虚拟内存请参考 https://10001blog.xslinc.com/?p=8708

sudo fallocate -l 1G /icedustpan \
&& sudo chmod 600 /icedustpan \
&& sudo mkswap /icedustpan \
&& sudo swapon /icedustpan
sudo vi /etc/fstab           /       /icedustpan none swap sw 0 0

 1、为了安全,首先修改服务器 ssh 端口号和root的密码;

sudo vi /etc/ssh/sshd_config
如果想让22和60000端口同时开放,只需将 2 个端口都写上即可
禁止使用root登录:PermitRootLogin yes修改为PermitRootLogin no
重启 ssh  服务 service ssh restart

修改管理员密码: sudo passwd root

新增用户adduser  xxxx

增加管理员权限
如果需要让此用户有root权限,执行命令:sudo vim /etc/sudoers
修改文件,添加:xxx ALL=(ALL:ALL) ALL

完成

2、安装docker 参照官方的方法;https://docs.docker.com/engine/install/ubuntu/

1
2
3
4
5
6
7
sudo apt-get update   #Update the apt package index
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common  #Install packages to allow apt to use a repository over HTTPS
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -     #Add Docker’s official GPG key
sudo apt-key fingerprint 0EBFCD88   #Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching for the last 8 characters of the fingerprint.
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"  #增加仓库
sudo apt-get update   #更新
sudo apt-get install docker-ce  #安装docker

sudo apt-get update -y \
&& sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common \
&& curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -    \
&& sudo apt-key fingerprint 0EBFCD88   \
&& sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"  \
&& sudo apt-get update -y  \
&& sudo apt-get install -y docker-ce 

sudo cat /etc/group | grep docker #新建用户组docker之前,查看用户组中有没有docker组,没有就新建
如果没有,新建 sudo groupadd -g 999 docker  ##-g 999为组ID,也可以不指定
sudo usermod -aG docker $USER  #把当前用户加入到docker组

docker-compose环境

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

 

3、增加docker仓库(腾讯云的服务器才需要)

创建或修改 /etc/docker/daemon.json文件,并写入以下内容:
{ “registry-mirrors”: [ “https://mirror.ccs.tencentyun.com” ] }
依次执行以下命令,重新启动 Docker 服务。
sudo systemctl daemon-reload
sudo systemctl restart docker
Ubuntu16.04 请执行 sudo systemctl restart dockerd 命令

查看是否包括新增加的仓库  docker info  # 查看docker 信息

4、安装Portainer

安装

1
2
docker volume create portainer_data
docker run --restart=always -d --name Portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer:1.24.1-alpine

https://www.cnblogs.com/lizziuno/p/12083962.html           设置Portainer管理Docker并且开启https(简单方法)

1
2
3
docker volume create portainer_data

docker run --restart=always -d --name Portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data -v /root/nginx/certs:/certs portainer/portainer:1.24.1-alpine --ssl --sslcert /certs/fullchain.pem --sslkey /certs/key.pem

 

新建安全组,把注浆机加入安全组;

有几种方法来查看当前服务和端口

1、使用lsof命令: sudo lsof -i -P -n | grep LISTEN
2、使用netstat命令:sudo netstat -tulpn | grep LISTEN
3、使用nmap命令sudo nmap -sT -O localhost 或者 sudo nmap -sTU -O localhost 扫描TCP / TCP及UDP

5、安装frps   https://10001blog.xslinc.com/?p=4704

docker run -d –name frp-server -p 7700:7700 -p 80:80 -p 443:443 -p 7702:7702 -v /root/conf:/conf –restart=always cloverzrg/frps-docker:0.27.1

 

https://blog.csdn.net/whatday/article/details/104099502            docker dockerfile 映射端口范围 批量映射端口

以映射7000-8000端口为例
Dockerfile EXPOSE命令:
EXPOSE 7000-8000
或Docker run命令:
docker run –expose=7000-8000
或者,您可以通过Docker run命令将一系列端口发布到主机:
docker run -p 7000-8000:7000-8000

docker run -d –name frp-server -p 25:25 -p 465:465 -p 587:587 -p 993:993 -p 995:995 -p 7700:7700 -p 90:90 -p 91:91 -p 7702:7702 -p 5900-5930:5900-5930 -p27605:27605 -v /root/conf:/conf –restart=always cloverzrg/frps-docker

用这个,使用主机的网络,不用指定端口:docker run -d –name frp-server –net=host -v /root/conf:/conf –restart=always cloverzrg/frps-docker:0.35.1

–net=host表示跟用主机 的IP,

 

frps.ini
[common]
bind_port = 7700
token =xxxxxx
vhost_http_port = 80
vhost_https_port = 443

dashboard_port = 7702
dashboard_user = xxxx
dashboard_pwd = xxxx

tcp_mux = true
max_pool_count = 10

frpc.ini
[common]
server_addr = server
server_port = 7000
token = admin
tcp_mux = true

[tcp]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 22
use_encryption = true
use_compression = true
tls_enable = true
# 启用健康检查,类型为 tcp
health_check_type = tcp
# 建立连接超时时间为 5 秒
health_check_timeout_s = 5
# 连续 3 次检查失败,此 proxy 会被摘除
health_check_max_failed = 3
# 每隔 180 秒进行一次健康检查
health_check_interval_s = 180

 

PPTP-SERVER安装

docker run -d –name pptp-vpn –restart always –privileged -p 1723:1723 -v /root/pptpd/chap-secrets:/etc/ppp/chap-secrets mobtitude/vpn-pptp

rattydave/alpine-vpn-pptp (未正常连接,研究中)

This is a docker image with simple VPN (PPTP) server with chap-secrets authentication.
PPTP uses /etc/ppp/chap-secrets file to authenticate VPN users. You need to create this file on your own and link it to docker when starting a container.

Example of chap-secrets file:
# Secrets for authentication using PAP
# client server secret acceptable local IP addresses
username * password *

假如用户为:user1  密码为12345678;应该写成这样  user1 * 12345678 *

docker run -d –name VPN –restart unless-stopped –privileged -p 1723:1723 -v /root/pptpd/chap-secrets:/etc/ppp/chap-secrets rattydave/alpine-vpn-pptp

https://www.cnblogs.com/young233/p/11595517.html

docker run -d –name my_vpn –restart=always  –privileged -p 1723:1723 -e client=xxx -e server=* -e password=xxx -e acceptable_local_ip_addresses=* -v /root/pptpd/chap-secrets:/etc/ppp/chap-secrets rattydave/alpine-vpn-pptp

https://ww

:/etc/ppp/chap-secrets \ mmontagna/docker-vpn-pptp

http://www.cloudxiang.cn/articles/2019/01/14/1547448176523.html

https://www.cnblogs.com/young233/p/11595517.html     docker 运行pptpd服务器

1
docker run -ti --name my_vpn --net=host --privileged -p 1723:1723 -e client=xxxx -e server=* -e password=xxxx -e acceptable_local_ip_addresses=* -v /etc/ppp/chap-secrets:/etc/ppp/chap-secrets mmontagna/docker-vpn-pptp

docker run -ti –name my_vpn  –net=host –privileged  -p 1723:1723  -e client=xxx -e server=*  -e password=xxx  -e acceptable_local_ip_addresses=* \ -v /etc/ppp/chap-secrets:/etc/ppp/chap-secrets \ mmontagna/docker-vpn-pptp

 

搭建Squid代理服务器(未使用)

docker run -d -p 3128:3128 sameersbn/squid:3.5.27-2

docker run -d –name squid3 –restart=always -p 12380:3128 -v /root/squid/squid.conf:/etc/squid/squid.conf -v /root/squid/log/squid3:/var/log/squid3 -v /root/squid/spool/squid3:/var/spool/squid3 sameersbn/squid:3.5.27-2

docker run –name squid -d –restart=always –publish 12380:3128 –volume /root/squid/squid.conf:/etc/squid/squid.conf –volume /root/squid/cache:/var/spool/squid sameersbn/squid:3.5.27-2

acl all src 0.0.0.0/0.0.0.0 acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 443 # https
acl CONNECT method CONNECT
http_access allow all
http_port 3128
visible_hostname proxy

 

检查是否有squid:which squid
apt update
sudo apt install squid

 

https://github.com/tomav/docker-mailserver

docker run –name nginx-test -p 8080:80 -d –restart=always nginx

搭建PPTP VPN 服务器(未成功)

1、安装PPTPD:sudo apt-get install pptpd

2、编辑PPTPD.CONF文件:sudo vim /etc/pptpd.conf

这一步的作用是配置VPN虚拟网络的主机ip(网关)和这个虚拟主机分配给其他设备的虚拟ip 段。

注意这个VPN虚拟ip主机和我们的服务器的ip没有关系,可以任意设置,ABC三类的内网地址都可以。而且最好避免和服务器所在网段内的其他设备ip冲突。比如说办公室的内网ip是192.168.1.1,我们在配置vpn虚拟网络时就不能配置这个网段的,不然可能会跟内网ip起冲突。

这个文件打开后呢,里面是有内容的,不过都是被注释掉的。

里面有两个参数:localip 和 remoteip 。

  # localip 192.168.2.1             —(要填内网ip)表示分配给服务器的内部网关地址。
# remoteip 192.168.2.2-255   —-当客户机通过pptp连接到vpn后所能拿到的ip地址范围,默认从第一个开始分配给客户

3、修改CHAP-SECRETS文件,添加可以登录的用户 : sudo vim /etc/ppp/chap-secrets

打开这个文件后,就可以编辑了。

# client server secret IP addresses    —标题
name  pptpd  123456     *               —如果不指定ip,用*表示。如果要给每个账户分配一个固定的ip,就把ip写在后面。这里分配的ip就在上面设置的remoteip段内。

红色字根据自己喜好填写。分别是指用户名和密码。在登录vpn账号时要用到。

4、设置DNS解析:vim /etc/ppp/pptpd-options

找到ms-dns ,取消掉注释,并修改dns地址(下面这是Google的dns,也可以填上服务器主机所在网络的dns地址。

ms-dns 8.8.8.8
ms-dns 8.8.4.4

5、开启转发:sudo vim /etc/sysctl.conf

(1) 取消注释以下内容(打开内核ip转发)net.ipv4.ip_forward=1

(2) 更新配置 sudo sysctl -p

 

安装acme.sh,获取证书:参考  https://10001blog.xslinc.com/?p=89

使用pttuy ssh通道翻墙:

打开putty 输入地址和端口,增加动态端口;然后打开,输入域用户和密码;

浏览器设置,以Mozilla Firefox为例:

  

这样设置之后,大部分的国外网站都可以访问了,但是Facebook和Twitter等还不行,在Firefox的地址栏输入 about:config ,找到network.proxy.socks_remote_dns,双击改成true即可。该选项是使用远程代理服务器来解析DNS,避免DNS欺骗。

设置每天6点钟重启 (放弃)

crontab -e
增加  0 6 * * * /sbin/reboot

docker  容器无法启动,提示:failure id already in use;

原因是:容器设置一直重启,没有正常关闭,导致启动的生活,id被占用;解决办法:每次手动关闭所有的容器后再重启;    是内存不够的原因;

定时重启 docker 容器   https://10001blog.xslinc.com/?p=8879     0 6 * * * docker restart $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)

iptables 设置:

阿里云后台可以设置防火墙,
对于后台没有防火墙的,只能自己使用 iptables 来设置

重启有效

Centos,

方法1:
执行命令:service iptables save
规则自动保存到了/etc/sysconfig/iptables,用此命令保存的规则开机会自动生效。

方法2:
保存规则:#iptables-save >/etc/iptables-script
恢复规则:#iptables-restore>/etc/iptables-script
开机自动恢复规则,把恢复命令添加到启动脚本:echo ‘/sbin/iptables-restore /etc/iptables-script’ >>/etc/rc.d/rc.local

iptables的配置文件 /etc/sysconfig/iptables

iptables-save > /etc/sysconfig/iptables 。iptables-save是将规则追加到一个文件,主要是配合iptables-restore命令

测试操作:

iptables -I INPUT -p tcp –dport 1000 -j ACCEPT

iptables-save > /etc/sysconfig/iptables

再查看 /etc/sysconfig/iptables,新增刚刚添加的那条规则

做reboot操作,iptables 规则仍然存在

不做 iptables-save操作,/etc/sysconfig/iptable文件中是没有你刚刚进行的iptales规则添加的,所以重启时/etc/init.d/iptables restart, 配置文件中没有相应的规则,重启后,规则消失

Ubuntu    

https://www.zsythink.net/archives/1199      iptables详解(1):iptables概念

iptables规则设置后都是即时生效的,在机器重启后,iptables中的配置信息会被清空.1

如下方法未成功:搞得服务器跟外网断开了
您可以将这些配置保存下来,让iptables在启动时自动加载,省得每次都得重新输入.
iptables-save和iptables-restore就是用来保存和恢复设置的.
先将防火墙规则保存到/etc/iptables.up.rules文件中:
iptables-save > /etc/iptables.up.rules
然后修改脚本/etc/network/interfaces,在末尾添加一行,在网络启动时应用防火墙规则:
pre-up iptables-restore < /etc/iptables.up.rules用到的参数解释:
pre-up: 网卡启用前的动作
up: 启用时候的动作
post-up: 启用后的动作
pre-down: 关闭前的动作
down: 关闭时动作
post-down: 关闭后动作

现在使用这个方法:
直接关掉不想开放的端口,再指定 ip 可以访问这个端口;比如非常重要的SSH端口

vi /root/iptalbes
iptables -I INPUT -p tcp --dport xxxx -j DROP
iptables -I INPUT -s 172.18.0.0/24 -p tcp --dport xxxx -j ACCEPT
chmod +x /root/iptalbes-xxxx      赋予执行权限
vi /etc/rc.local     加入开机自动执行
/root/iptalbes