How to Connect Internal and External Networks at the same time : Windows

Delete Default Route

route delete 0.0.0.0

Add Gateway : Internal

route add 192.168.10.0 mask 255.255.255.0 192.168.10.1 -p

Add Gateway : External

route add 0.0.0.0 mask 0.0.0.0 192.168.20.1 -p

Check It!

route print
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.20.254 192.168.20.151 55
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.103 45

===========================================================================
Persistent Routes:
Network Address Netmask Gateway Address Metric
192.168.1.0 255.255.255.0 192.168.1.1 1
192.168.3.0 255.255.255.0 192.168.3.1 1

Routes stream to specified buffer

Developer Command Prompt for VS 2019

  1. cl basic_ios_rdbuf.cpp /EHsc

MSDN Source Code

  1. #include <ios>
  2. #include <iostream>
  3. #include <fstream>
  4.  
  5. int main( ) 
  6. {
  7.    using namespace std;
  8.    ofstream file( "rdbuf.txt" );
  9.    streambuf *x = cout.rdbuf( file.rdbuf( ) );
  10.    cout << "test" << endl; // Goes to file
  11.    cout.rdbuf(x);
  12.    cout << "test2" << endl; //normal
  13. }

How to expose a local server behind a NAT or firewall to the internet

Download FRP Server & Client

Modify frps.ini

  1. [[email protected]_0_5_centos frp_0.25.3_linux_amd64]# cat frps.ini
  2. [common]
  3. bind_port = xxxxxx
  4. dashboard_port = xxxxxx
  5. dashboard_user = xxxxxxxxxxxxxxxx
  6. dashboard_pwd = xxxxxxxxxxxxxxxx
  7. allow_ports = xxxxx-xxxxx
  8. token = xxxxxxxxxxxxxxxx
  9. max_pool_count = 10
  10. pool_count = 3

Start frps

  1. [root@VM_0_5_centos frp_0.25.3_linux_amd64]# ./frps -c ./frps.ini

Modify frpc.ini

  1. [email protected]:~/frp# cat frpc.ini 
  2. [common]
  3. server_addr = qinuu.com
  4. server_port = xxxxxx
  5. token = xxxxxxxxxxxxxxxx
  6. [ssh]
  7. type = tcp
  8. local_ip = 127.0.0.1
  9. local_port = 22
  10. remote_port = xxxxxx

Start frpc

[email protected]:~/frp# ./frpc -c ./frpc.ini

Start a systemd service

[root@VM_0_5_centos frp_0.25.3_linux_amd64]# cat /lib/systemd/system/frps.service
[Unit]
Description=Frp Server Service
After=network.target
 
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/frp/frp_0.25.3_linux_amd64/frps -c /usr/local/frp/frp_0.25.3_linux_amd64/frps.ini
 
[Install]
WantedBy=multi-user.targethis
 
[root@VM_0_5_centos frp_0.25.3_linux_amd64]# systemctl start frps
[root@VM_0_5_centos frp_0.25.3_linux_amd64]# systemctl enable frps
[root@VM_0_5_centos frp_0.25.3_linux_amd64]# systemctl status frps

Some built-in macros inside CMakeSettings.json:

  • ${workspaceRoot} – provides the full path to the workspace folder
  • ${workspaceHash} – hash of workspace location; useful for creating a unique identifier for the current workspace (e.g. to use in folder paths)
  • ${projectFile} – the full path for the root CMakeLists.txt
  • ${projectDir} – the full path to the folder of the root CMakeLists.txt file
  • ${thisFile} – the full path to the CMakeSettings.json file
  • ${name} – the name of the configuration
  • ${generator} – the name of the CMake generator used in this configuration